【问题标题】:Intellij-IDEA can start and debug jersey apps in tomcat, but deploy the war to tomcat got 404Intellij-IDEA 可以在 tomcat 中启动和调试 jersey 应用程序,但是将战争部署到 tomcat 得到 404
【发布时间】: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


【解决方案1】:

是的,问题解决了。由不同的Java版本引起。我机器上的Java是高版本,但是Server上的Java版本比较低

【讨论】:

    猜你喜欢
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 2017-07-23
    相关资源
    最近更新 更多