2017-09-05 44 views
0

我正在開發一個簡單的應用程序,它使用Jersey作爲框架構建API,Jackson處理JSON。在Tomcat 8.5上部署澤西島應用程序

當我通過部署在複製的webapps/ &粘貼的應用,,我可以看到我的index.jsp。雖然我創建的資源不可訪問,但它始終顯示一個404頁面。沒有顯示錯誤,而不是在catalina。*日誌文件中發生的事件。

我很確定這個問題不在java代碼中,因爲它曾經使用* .jar include方法工作。但我厭倦了這一點,並希望將其遷移到Maven架構。

我不會發布我的整個代碼,但you can see it here

爲了方便起見,這裏遵循我使用的依賴關係的列表:

  • 球衣JSON的1.19
  • 球衣服務器v2.25.1
  • 新澤西媒體JSON -jackson v2.25.1
  • 傑克遜核v2.9.0
  • 傑克遜模塊-JAXB的註解v2.9.0
  • 傑克遜 - 註解v2.9.0
  • 傑克遜,數據綁定v2.9.0
  • 傑克遜JAXRS基v2.9.0
  • ackson-JAXRS JSON的提供商v2.9.0

什麼會導致這個錯誤?我沒有什麼可遵循的,沒有堆棧跟蹤,沒有錯誤信息,什麼都沒有。難道是缺乏一些依賴?

回答

1
  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,除非你能找到更新的文件頭。

0

不是很知道這個,但嘗試添加的servlet到web.xml, 因爲我最後一次使用的球衣我發現它是necesary與服務器

例如這個溝通是什麼,我加入一個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的類」),但這個migth讓你和你的想法 我真的希望這可以幫助您:)