java - 在 tomat 上部署的根映射(“/”)上的 Spring Boot 404。(轻松依赖问题)
问题描述
我有一个由 spring-boot 制作的应用程序,并在 tomcat 中部署为战争。
当我运行嵌入式 Tomcat 时,映射到 / 工作正常,将其重定向到“index.html”,但在 tomcat 中,它只提供 404。
例如。http://localhost:8080/test/index.html工作正常,但http://localhost:8080/test/没有重定向到 index.html。正如我将在下面解释的,如果我禁用 resteasy lib,它可以正常工作。
在执行后几个小时的调试之后,我意识到管理查询的最后一个 Servlet 是来自 jboss resteasy-jaxrs lib 的“HttpServletDispatcher”。
为什么我使用那个库?因为应用程序需要运行依赖于“resteasy-jaxrs”的“resteasy-client”的“keycloak-admin-cli”rest lib。
我没有成功的尝试:
- 排除 lib -> keycloak-admin-cli 停止使用 NoClassDefFoundError 但根映射运行良好。
- 禁用 Resteasy HttpServletDispatcher -> 什么也没发生
- 将 servlet 映射到其他 URL -> 不成功
现在我坚持使用 Apache/Nginx 重定向的丑陋解决方法,但我会知道是否有人在 resteasy 或 spring-boot 方面比我有更好的知识,以便以正确的方式修复它。
谢谢!
一些库版本:
- 京东:1.8
- 钥匙斗篷:4.5.0.Final
- resteasy:3.6.3.Final
- 春季启动:2.0.3.RELEASE
解决方案
推荐阅读
- pandas - 将数据框列设置为日期时间时的 SettingWithCopyWarning
- python - 如何部分显示来自 django 数据库的信息?
- firebase - 开发 SDK - 如何将 Firebase 事件发送到 SDK firebase 帐户,而不是应用程序?
- javascript - 如何在特定日期之前获取消息?
- css - 自定义 SVG 形状剪辑路径图像
- ruby-on-rails - 用红宝石检查日期之间的无年
- mysql - 选择与另一列最小值相关的列值
- angular - 打字稿布尔值返回“未定义”
- java - ControllerAdvice 的异常处理程序在使用 Spring Boot 的 Rest API 获取请求中不起作用。如何解决?
- mysql - 如何编写数据库查询以获取 laravel-8 中列值为 1 的所有记录?