我正在尝试将 Jersey(2.6 版)与在 Java 1.6 上运行的 Tomcat 6 一起使用。它应该是可能的,但会抛出错误,我不确定如何正确配置它或要包含哪些库。
我拥有的 Jersey Libs:https://maven.java.net/content/repositories/releases/org/glassfish/jersey/bundles/jaxrs-ri/2.6/jaxrs-ri-2.6.tar.gz
这似乎表明它可以与 Servlet 2.5(这是 Tomcat 6 使用的)一起工作:https://jersey.java.net/documentation/latest/modules-and-dependencies.html
java.lang.NoSuchMethodError: jersey.repackaged.com.google.common.collect.Iterables.concat(Ljava/lang/Iterable;Ljava/lang/Iterable;)Ljava/lang/Iterable;
org.glassfish.jersey.server.internal.ConfigHelper.getContainerLifecycleListener(ConfigHelper.java:86)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:169)
org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
java.lang.Thread.run(Thread.java:662)
最佳答案
要使其正常工作,您需要:
来自 https://maven.java.net/content/repositories/releases/org/glassfish/jersey/bundles/jaxrs-ri/2.6/jaxrs-ri-2.6.tar.gz 的 2.6 Jersey 文件
Genson(帮助处理对 JSON 来说不“明显”的对象的 JSON):http://owlike.github.io/genson/
将所有这些 jar 包含在您的
web-inf/lib
文件夹中(直接或通过您的 IDE 的编译/部署配置)确保在 Web 应用程序的类路径中的任何位置都没有任何其他版本的任何 jar 或它们的类(我的 IDE 保留旧版本的 Guava)
关于java - 如何让 Jersey 2.6 与 Tomcat 6 和 Java 1.6 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578928/