2012-01-10 16 views
1

私のアプリケーションでREST Webサービスが動作するようにしようとしています。私はSpring 2.5でジャージーを使用しています。 Webサービスのエンドポイントは、enunciate 1.9で生成されます。私は、次の例外を取得Tomcatで生成されたwarファイルを展開し、RESTのWebサービスにアクセスする場合:Jersey REST Webserviceにアクセス中に例外が発生しました

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) 

ノートを根本原因の完全なスタックトレースはで利用可能ですApache Tomcat/6.0.33のログRESTサーブレットの一部について

web.xmlは、次のようになります。

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

は、問題を修正することができ、私はコンフィギュレーションでここに修正する必要があるものは、ありますか?

答えて

1

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)

あなたのasmはクラスパスのジャージーに合っていますか?

2

java.lang.NoSuchMethodError:あなたはクラス/ジャーの間違ったバージョンを持っている場合、クラスパス内のファイル(新しいバージョン/古いバージョンの可能性が)たまたまチェックしてみてください。クラスパスにあるjarファイルがサポートされているバージョンであることを確認してください。

0

これは、ビルドパスに重複したjarが原因である可能性もあります。 Mavenを使用している場合は、依存関係を作成することをお勧めします。ツリーには、重複があるかどうかがわかります。また、.classpathファイルを開き、ビルドパスの問題を確認してください。

関連する問題