首页 文章

在Tomcat 8.5上部署Jersey应用程序

提问于
浏览
0

我正在开发一个简单的应用程序,它使用Jersey作为框架来构建API,并使用Jackson来处理JSON .

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

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

我不会发布我的整个代码,但you can see it here .

为了简化操作,下面是我正在使用的依赖项列表:

  • jersey-json v1.19

  • jersey-server v2.25.1

  • jersey-media-json-jackson v2.25.1

  • jackson-core v2.9.0

  • jackson-module-jaxb-annotations v2.9.0

  • jackson-annotations v2.9.0

  • jackson-databind v2.9.0

  • jackson-jaxrs-base v2.9.0

  • ackson-jaxrs-json-provider v2.9.0

什么可能导致此错误?我没有什么可以遵循,没有堆栈跟踪,没有错误消息,没有 . 难道是缺乏一些依赖吗?

2 回答

  • 1
    • 摆脱 jersey-json . 这是1.x而且会让你搞砸

    • 您需要的不仅仅是 jersey-server . 你也需要

    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.25.1</version>
    </dependency>
    
    • 你应该摆脱你的web.xml . 使用 @ApplicationPath 配置注释时不需要它 . 您还在web.xml中使用了非常旧的架构版本 . 我不知道这是否会让你感到困惑 . 除非你能找到更新的文件头,否则最好完全摆脱web.xml .
  • 0

    不太确定这个但是尝试将servlet添加到你的web.xml,因为上次我使用jersey我发现它是必要的与服务器通信

    例如,这是我添加到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给你并且想到我真的希望这可以帮助你:)

相关问题