簡體   English   中英

部署到tomcat后的Jersey錯誤,在Eclipse中可以正常工作

[英]Jersey errors after deploying to tomcat, works fine in Eclipse

我已經花了幾個小時試圖找出這個煩人的問題。 我創建了一個簡單的Java應用程序,該應用程序使用Jersey公開了一些REST服務。

使用Tomcat 8服務器在Eclipse中調試應用程序時,一切正常。 然后,我將項目導出到WAR文件,並將其部署到真正的Tomcat 8服務器上,當我嘗試調用REST服務時,出現以下錯誤。 我已經檢查了明顯的事情:確保我在服務器上使用了正確的Java版本,確保包括了庫,但是,我被困住了。

type Exception report

message Servlet.init() for servlet Jersey REST Service threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet Jersey REST Service threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)
root cause    

java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:309)
    org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:338)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:171)
    org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:363)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
    java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Thread.java:745)

WEB-INF中添加了該項目的所有重要庫,如下所示:

  • aopalliance-repackaged-2.4.0-b10.jar
  • asm-debug-all-5.0.2.jar
  • commons-beanutils-1.9.2.jar
  • commons-collections-3.2.1.jar
  • commons-collections4-4.0.jar
  • commons-logging-1.2.jar
  • gson-2.3.1.jar
  • hk2-api-2.4.0-b10.jar
  • hk2-locator-2.4.0-b10.jar
  • hk2-utils-2.4.0-b10.jar
  • httpclient-4.4.1.jar
  • httpcore-4.4.1.jar
  • java-json.jar
  • javassist-3.18.1-GA.jar
  • javax.annotation-api-1.2.jar
  • javax.inject-2.4.0-b10.jar
  • javax.json-1.0.2.jar
  • javax.servlet-api-3.0.1.jar
  • javax.ws.rs-api-2.0.1.jar
  • jaxb-api-2.2.7.jar
  • jersey-client-1.7.jar
  • jersey-client.jar
  • jersey-common.jar
  • jersey-container-servlet-core.jar
  • jersey-container-servlet.jar
  • jersey-core-1.7.jar
  • jersey-guava-2.17.jar
  • jersey-json-1.7.jar
  • jersey-media-jaxb.jar
  • jersey-server.jar
  • joda-time-2.3.jar
  • log4j-1.2.17.jar
  • org.osgi.core-4.2.0.jar
  • org.restlet.ext.gson-2.3.1.jar
  • org.restlet.ext.json.jar
  • org.restlet.jar
  • osgi-resource-locator-1.0.1.jar
  • persistence-api-1.0.jar
  • unboundid-ldapsdk-se.jar
  • 驗證API-1.1.0.Final.jar

我相信這不是因為缺少jar。我相信這是類加載問題。 球衣瓶未裝入(或裝入的版本可能不正確)。 您能否正確檢查依賴性並在您的應用程序中檢查球衣的重復罐子。

另外,請嘗試取消部署應用程序並再次進行部署。.這可能會刪除已為該應用程序加載的所有類,而Tomcat可能會再次初始化類加載。

希望這可以...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM