我正在使用jersey 2.0,在执行请求时,我遇到以下异常:
SEVERE: StandardWrapper.Throwable
java.lang.NoSuchMethodError: com.google.common.collect.Sets.newIdentityHashSet()Ljava/util/Set;
at org.glassfish.jersey.model.internal.CommonConfig.<init>(CommonConfig.java:215)
at org.glassfish.jersey.server.ResourceConfig$State.<init>(ResourceConfig.java:107)
at org.glassfish.jersey.server.ResourceConfig.<init>(ResourceConfig.java:338)
at org.glassfish.jersey.servlet.WebComponent.createResourceConfig(WebComponent.java:373)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:259)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:865)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:136)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
这些是我正在使用的罐子:
我想我正在使用的罐子有些问题,但我无法弄清楚缺少什么。 我没有使用maven所以我直接消费了罐子。
另外,我还在我的应用程序中实现了一个过滤器(ContainerResponseFilter),也许它与异常有关,我不知道。
答案 0 :(得分:1)
这可能是由您的依赖项中不同的,不兼容的Google Collections版本(现在是Guava的一部分)引起的。 Jersey库是针对此版本的一个版本编译的,现在在运行时期间首先加载它的不同版本。 尝试从依赖项中排除google-collections或guava-collections之一。
答案 1 :(得分:0)
我解决了这个问题。基本上我的罐子可能不匹配。 This回答帮助了我们很多。你可以在那里找到所有必需的罐子的清单。我有完全相同的列表,它正在工作。