繁体   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