在 Tomcat 8.5 上部署 Jersey 应用程序

Deploy Jersey application on Tomcat 8.5

我正在开发一个简单的应用程序,它使用 Jersey as framework to build the API and Jackson 来处理 JSON。

当我部署应用程序时,通过复制粘贴到 webapps/,我可以看到我的 index.jsp。尽管无法访问我创建的资源,但它始终显示 404 页面。没有显示错误,catalina 中没有事件。* 日志文件。

我很确定问题不在 java 代码中,因为它曾经使用 *.jar 包含方法。但我对此感到厌倦,想将其迁移到 maven 架构。

我不会 post 我的整个代码,但是 you can see it here

为了让事情更简单,下面是我正在使用的依赖项列表:

什么会导致此错误?我没有什么可遵循的,没有堆栈跟踪,没有错误消息,什么都没有。会不会是缺少某种依赖?

对此不太确定,但请尝试将 servlet 添加到您的 web.xml, 自从上次我使用球衣后,我发现必须与服务器通信

例如这是我添加到 web.xml

 <servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>"PACKAGE WHERE DO YOU HAVE YOUR CLASS"</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/rest/*</url-pattern>
 </servlet-mapping>

请注意,我使用的是 Glassfish 服务器,而不是 Tomcat(在 "servlet-class" 中),但是这个 migth 给你和想法 我真的希望这可以帮助你 :)

  1. 干掉jersey-json。那是 1.x,它会把你搞得一团糟
  2. 您需要的不仅仅是 jersey-server。您还需要

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.25.1</version>
    </dependency>
    
  3. 你应该摆脱你的 web.xml。您的 @ApplicationPath 配置注释不需要它。另外,您在 web.xml 中使用了非常旧的架构版本。我也不知道那会不会给你添麻烦。最好完全去掉 web.xml,除非你能找到更新的文件头。