Intellij-IDEA 可以在 tomcat 中启动和调试 jersey 应用程序,但将 war 部署到 tomcat 得到 404
Intellij-IDEA can start and debug jersey apps in tomcat, but deploy the war to tomcat got 404
我有一个球衣网络应用程序,使用 IntelliJ IDEA 作为 IDE。我使用 maven (pom.xml) 作为项目管理器工具----用于依赖库管理器。
我使用这个调试配置:
服务器 -> 应用程序服务器:Tomcat 9.0.24
URL : http://localhost:8080/
部署 -> :war 展开
应用上下文:/
然后当我按下调试按钮时,项目编译,工件部署,浏览器打开欢迎页面(这是静态页面)。
我用postman发送GET或者POST或者PUT请求,给出正确的响应。
当我 Build/Artifacts... 时,IntelliJ IDEA 创建了 .war 文件。
我将 war 文件放入远程 Tomcat 容器 webapps 文件夹 ---- 与本地主机相同 ---- 使用 ROOT.war 名称。
tomcat catalina.out 文件有这条消息:
20-Aug-2019 11:41:06.528 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"]
20-Aug-2019 11:41:06.546 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"]
20-Aug-2019 11:41:06.551 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [393] milliseconds
20-Aug-2019 11:41:06.587 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
20-Aug-2019 11:41:06.587 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.24]
20-Aug-2019 11:41:06.603 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/root/apache-tomcat-9.0.24/webapps/ROOT.war]
20-Aug-2019 11:41:08.434 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
20-Aug-2019 11:41:08.469 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/root/apache-tomcat-9.0.24/webapps/ROOT.war] has finished in [1,867] ms
我用邮递员发送相同的请求,得到 404 错误。使用postman访问静态页面,没问题
我google有些事,但不适合我的场景。这里不是 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
why IntelliJ IDEA startup tomcat 部署项目没问题,我用IntelliJ IDEA build war 文件放到tomcat webapps/ROOT.war 不起作用?
请问问题出在哪里?
是的,问题已解决。 Java 版本不同造成。我机器上的Java是高版本,但是Server上的Java版本比较低
我有一个球衣网络应用程序,使用 IntelliJ IDEA 作为 IDE。我使用 maven (pom.xml) 作为项目管理器工具----用于依赖库管理器。
我使用这个调试配置:
服务器 -> 应用程序服务器:Tomcat 9.0.24 URL : http://localhost:8080/
部署 -> :war 展开 应用上下文:/
然后当我按下调试按钮时,项目编译,工件部署,浏览器打开欢迎页面(这是静态页面)。
我用postman发送GET或者POST或者PUT请求,给出正确的响应。
当我 Build/Artifacts... 时,IntelliJ IDEA 创建了 .war 文件。
我将 war 文件放入远程 Tomcat 容器 webapps 文件夹 ---- 与本地主机相同 ---- 使用 ROOT.war 名称。
tomcat catalina.out 文件有这条消息:
20-Aug-2019 11:41:06.528 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 20-Aug-2019 11:41:06.546 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 20-Aug-2019 11:41:06.551 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [393] milliseconds 20-Aug-2019 11:41:06.587 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 20-Aug-2019 11:41:06.587 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.24] 20-Aug-2019 11:41:06.603 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [/root/apache-tomcat-9.0.24/webapps/ROOT.war] 20-Aug-2019 11:41:08.434 INFO [main] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 20-Aug-2019 11:41:08.469 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/root/apache-tomcat-9.0.24/webapps/ROOT.war] has finished in [1,867] ms
我用邮递员发送相同的请求,得到 404 错误。使用postman访问静态页面,没问题
我google有些事,但不适合我的场景。这里不是 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
why IntelliJ IDEA startup tomcat 部署项目没问题,我用IntelliJ IDEA build war 文件放到tomcat webapps/ROOT.war 不起作用?
请问问题出在哪里?
是的,问题已解决。 Java 版本不同造成。我机器上的Java是高版本,但是Server上的Java版本比较低