【发布时间】:2019-12-25 06:33:54
【问题描述】:
我有一个球衣网络应用程序,使用 IntelliJ IDEA 作为 IDE。我使用 maven (pom.xml) 作为项目管理器工具----用于依赖库管理器。
我使用这个调试配置:
服务器 -> 应用服务器:Tomcat 9.0.24 网址:http://localhost:8080/
部署 -> :war exploded 应用上下文:/
然后当我按下调试按钮、项目编译和工件部署时,浏览器打开欢迎页面(这是静态页面)。
我使用邮递员发送 GET 或 POST 或 PUT 请求,给出正确的响应。
当我构建/工件...时,IntelliJ IDEA 创建了 .war 文件。
我把war文件放到远程Tomcat容器的webapps文件夹----都和localhost一样----使用ROOT.war名字。
tomcat catalina.out 文件有这样的信息:
20-Aug-2019 11:41:06.528 INFO [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["http-nio-8080"] 2019 年 8 月 20 日 11:41:06.546 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化 ProtocolHandler ["ajp-nio-8009"] 2019 年 8 月 20 日 11:41:06.551 INFO [main] org.apache.catalina.startup.Catalina.load 服务器初始化 [393] 毫秒 2019 年 8 月 20 日 11:41:06.587 信息 [main] org.apache.catalina.core.StandardService.startInternal 启动服务 [Catalina] 2019 年 8 月 20 日 11:41:06.587 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 启动 Servlet 引擎:[Apache Tomcat/9.0.24] 2019 年 8 月 20 日 11:41:06.603 信息 [main] org.apache.catalina.startup.HostConfig.deployWAR 部署 Web 应用程序存档 [/root/apache-tomcat-9.0.24/webapps/ROOT.war] 2019 年 8 月 20 日 11:41:08.434 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars 至少对一个 JAR 进行了 TLD 扫描,但未包含 TLD。启用此记录器的调试日志记录以获取已扫描但未在其中找到 TLD 的 JAR 的完整列表。在扫描期间跳过不需要的 JAR 可以缩短启动时间和 JSP 编译时间。 20-Aug-2019 11:41:08.469 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Web 应用程序存档 [/root/apache-tomcat-9.0.24/webapps/ROOT.war] 的部署已完成在 [1,867] 毫秒内
我使用邮递员发送相同的请求,得到 404 错误。用postman访问静态页面,没关系。
我在谷歌上搜索了一些东西,但不适合我的场景。这里不是tomcat应用上下文正确,不是war文件错误。
我的项目不是 web.xml 文件。但我附加了 web.xml,而不是运气。
我将 tomcat7-maven-plugin 附加到 pom.xml 文件中。没有效果。
将 org.glassfish.jersey.bundles jaxrs-ri 库附加到 pom.xml。一样。
@ApplicationPath("/api")
public class RestApplication extends ResourceConfig {
我使用这个 JAX-RS 应用程序。 所以我访问http://host-name:8080/api/...,tomcat给我找不到。
我查找tomcat访问日志(localhost_access_log.2019-MM-DD.txt),给我这个消息:
114.249.235.124 - - [20/Aug/2019:11:53:12 +0800] "GET /api/subjects HTTP/1.1" 404 1047
为什么 IntelliJ IDEA 启动 tomcat 并部署项目没问题,我用 IntelliJ IDEA 构建 war 文件并放到 tomcat webapps/ROOT.war 中不行?
请问问题出在哪里?
【问题讨论】:
-
我把war放到localhost tomcat,没关系。
-
localhost tomcat 和 remotehost tomcat 是从 url 下载的。不要更改任何配置,仅解压缩。 localhost os 是 macos 10.14.6,remotehost os 是 ubuntu 18.04
标签: tomcat intellij-idea web-applications jersey