Исключение при доступе к веб-сервису Jersey REST - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь заставить веб-сервисы REST работать в моем приложении. Я использую майку с весны 2.5. Конечные точки для веб-сервисов создаются с помощью enunciate 1.9. Когда я развертываю сгенерированный файл войны с Tomcat и обращаюсь к веб-сервису REST, я получаю следующее исключение:

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)

note Примечание Полная трассировка стека основной причины доступна в журналах Apache Tomcat / 6.0.33.

Мой web.xml для части сервлета REST выглядит так:

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

Есть ли что-то, что мне нужно исправить здесь в конфигурации, что может решить проблему?

Ответы [ 3 ]

2 голосов
/ 10 января 2012

java.lang.NoSuchMethodError: происходит, когда у вас неправильная версия файла class / Jar (может быть более новая версия / более старая версия) в classpath.Убедитесь, что файлы jar в classpath являются поддерживаемыми версиями.

1 голос
/ 10 января 2012

java.lang.NoSuchMethodError: org.objectweb.asm.ClassReader.accept (Lorg / objectweb / asm / ClassVisitor; I) V com.sun.jersey.impl.container.config.267)

нужен ли ваш асм в классе путь Джерси?

попробуй проверить

0 голосов
/ 10 января 2012

Это также может быть из-за дубликата jar на вашем пути сборки.Если вы используете Maven, я предлагаю вам создать дерево зависимостей, чтобы выяснить, есть ли дубликаты.Также откройте файл .classpath и проверьте наличие проблем с путями сборки.

...