Java 访问Jersey REST Web服务时发生异常

Java 访问Jersey REST Web服务时发生异常,java,spring,rest,jersey,enunciate,Java,Spring,Rest,Jersey,Enunciate,我正在尝试让REST Web服务在我的应用程序中工作。我正在使用Spring 2.5的运动衫。Web服务的端点是使用Enunciate1.9生成的。当我使用Tomcat部署生成的war文件并访问REST Web服务时,我得到以下异常: javax.servlet.ServletException: Servlet.init() for servlet jersey threw exception org.apache.catalina.valves.ErrorReportValve.invoke

我正在尝试让REST Web服务在我的应用程序中工作。我正在使用Spring 2.5的运动衫。Web服务的端点是使用Enunciate1.9生成的。当我使用Tomcat部署生成的war文件并访问REST Web服务时,我得到以下异常:

javax.servlet.ServletException: Servlet.init() for servlet jersey threw exception
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:662)
根本原因:

java.lang.NoSuchMethodError: org.objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V
com.sun.jersey.impl.container.config.AnnotatedClassScanner.analyzeClassFile(AnnotatedClassScanner.java:267)
com.sun.jersey.impl.container.config.AnnotatedClassScanner.indexJar(AnnotatedClassScanner.java:229)
com.sun.jersey.impl.container.config.AnnotatedClassScanner.indexJar(AnnotatedClassScanner.java:218)
com.sun.jersey.impl.container.config.AnnotatedClassScanner.indexDir(AnnotatedClassScanner.java:210)
com.sun.jersey.impl.container.config.AnnotatedClassScanner.index(AnnotatedClassScanner.java:169)
com.sun.jersey.impl.container.config.AnnotatedClassScanner.scan(AnnotatedClassScanner.java:105)
com.sun.jersey.api.core.ClasspathResourceConfig.init(ClasspathResourceConfig.java:131)
com.sun.jersey.api.core.ClasspathResourceConfig.<init>(ClasspathResourceConfig.java:103)
com.sun.jersey.api.core.ClasspathResourceConfig.<init>(ClasspathResourceConfig.java:85)
com.sun.jersey.spi.container.servlet.ServletContainer.createResourceConfig(ServletContainer.java:395)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:194)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
java.lang.Thread.run(Thread.java:662)


在配置中是否有我需要解决的问题?

您的类内asm路径是否符合您的需要


尝试检查它

java.lang.NoSuchMethodError:
发生在类路径中的class/Jar文件版本错误时(可能是较新版本/较旧版本)。确保类路径中的jar是受支持的版本。

这也可能是因为构建路径中存在重复的jar。如果您使用的是Maven,我建议您做一个dependency:tree来确定是否有重复项。同时打开.classpath文件并检查生成路径问题

<servlet>
<servlet-name>jersey</servlet-name>
<servlet-class>org.codehaus.enunciate.modules.jersey.EnunciateSpringServlet</servlet-class>
<init-param>
  <param-name>org.codehaus.enunciate.modules.jersey.config.ServletPath</param-name>
  <param-value>/rest</param-value>

</init-param>