NoSuchMethodError при доступе к ресурсу веб-приложения на сервере Tomcat - PullRequest
3 голосов
/ 24 ноября 2010

После поиска в Интернете это вопрос, на который я не смог найти ответ. Мое веб-приложение развернуто на сервере Tomcat. Я знаю, что все это работает, так как index.jsp отображает текст. но когда я пытаюсь получить доступ к созданному мною ресурсу, который должен распечатать привет, сервер Tomcat возвращает это сообщение

java.lang.NoSuchMethodError: com.sun.jersey.core.spi.component.ProviderServices.<init>(Lcom/sun/jersey/core/spi/factory/InjectableProviderFactory;Lcom/sun/jersey/core/spi/component/ProviderFactory;Ljava/util/Set;Ljava/util/Set;)V
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:450)
    com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:383)
    com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:377)
    com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:242)
    com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:449)
    com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:169)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:281)
    com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:442)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Unknown Source)

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

Любая помощь с благодарностью Спасибо Chris

Ответы [ 3 ]

3 голосов
/ 24 ноября 2010

Я предполагаю, что в вашем классе есть что-то не так с банками. Возможно, у вас есть две разные версии майки на вашем пути к классам или в WEB-INF / lib

2 голосов
/ 07 июля 2011

вы должны включить следующие джерси в вашу папку WEB-INF/lib

  • jersey-server-1.3.jar
  • asm-3.1.jar
  • jersey-core-1.3.jar
  • jersey-client-1.3.jar
0 голосов
/ 09 октября 2015

Я полагаю, что это вызвано разницей в версии между jar-сервером и jer-core-ядром (также проверьте, что у вас случайно нет дублирующихся разностных версий этих различных jar-файлов в вашем WEB-INF / libпапка).

В моем случае мы столкнулись с нашей версией jersey-client, которая повысила версию jersey-core (зависимость), или что-то в этом роде, тогда как мы вызвали определенный (более старый) jersey-версия сервера, что вызывает несоответствие (старый jersey-server 1.0.2, новый jersey-core 1.11).

Также

SEVERE: The provider class, class com.sun.jersey.core.impl.provider.xml.XMLStreamReaderContextProvider, could not be instantiated
Caused by: java.lang.NullPointerException
        at com.sun.jersey.core.impl.provider.xml.TransformerFactoryProvider.<init>(TransformerFactoryProvider.java:57)
        ... 44 more

Я думаю, что то же самое.

Такжеесли для jersey-core установлено значение 1.0.2, а для jersey-client - 1.11, то же сбой в ProviderServices.

Исправлено: сделать так, чтобы все они совпадали.

...