簡體   English   中英

訪問Tomcat服務器上的Web應用程序資源時出現NoSuchMethodError

[英]NoSuchMethodError when accessing web app resource on Tomcat server

在線搜索后,這是一個我無法找到答案的問題。 我的Web應用程序部署到tomcat服務器,我知道這一切都在作為index.jsp顯示文本。 但是當我嘗試訪問我已經創建的資源應該打印出hello world時,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)

有沒有人有任何想法或線索,為什么會發生這種情況會幫助我解決這個問題?

任何幫助非常感謝謝謝克里斯

我的猜測是你的類路徑中存在一些問題。 也許,您可能在類路徑或WEB-INF / lib中有兩個不同版本的jersey

您必須在WEB-INF/lib文件夾中包含以下球衣罐

  • 新澤西服務器1.3.jar
  • ASM-3.1.jar
  • 球衣核心 - 1.3.jar
  • 新澤西州的客戶 - 1.3.jar

我相信這是由於“jersey-server”和“jersey-core”罐子之間的版本差異造成的(同樣要仔細檢查你不會在WEB-INF / lib文件夾中偶然發現那些不同罐子的重復差異版本)。

在我的情況下,我們已經碰到了我們的澤西 - 客戶端版本,這已經碰到了jersey-core版本(一個依賴項),或類似的東西,而我們調出了一個特定的(舊的)澤西服務器版本,從而導致不匹配(舊jersey-server 1.0.2,new 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失敗。

修復:讓它們全部匹配。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM