我正在尝试在外部 Tomcat 8.5.73 上部署 Spring Boot 应用程序,但是当我浏览我的
localhost:8080/myApplicationName
时,我收到 “请求的资源不可用” 错误。
我已成功部署我的 Angular 前端(在
localhost:8080/myAngularApp
上)并且工作正常。
这些是我已经遵循的步骤:
spring-boot-starter-tomcat
,如我的 Gradle 依赖项中所提供;SpringBootServletInitializer
扩展了我的应用程序并覆盖了方法 SpringApplicationBuilder configure
;Gradle War
;当我启动
startup.bat
时,我得到:
WARNING [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [5.0]. Default version will be used.
INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [ .. \tomcat\webapps\myApplicationName.war] has finished in [4,823] ms
INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 10657 ms
我还尝试在 tomcat8w 中的启动和关闭属性上设置
java
而不是 jvm
,但我得到了相同的错误。
我可以在 tomcat 管理器面板上看到每个已部署的应用程序,但每次都会出现 404,除了我的前端。
我已将 .war 发送给我的一位同事,它在他的机器上运行良好,因此我 99% 确定问题出在我的 tomcat 配置中。无论如何,我和我的同事之间唯一的区别是,当他通过startup.bat启动tomcat时,他可以在他的tomcat日志上看到“spring标志”和spring日志。
使用 Spring Boot 3.3.5 和 Java21 运行 Tomcat9 时,我收到了同样的错误消息。但是,当我升级到 Tomcat10 时,错误消失了。唯一的问题是,在 Ubuntu 上,您还需要至少升级到 24.04 才能从 apt 包管理获取 tomcat10。当然,您也可以进行普通安装。