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