如何让Jersey 2.6与Tomcat 6和Java 1.6一起使用?

时间:2016-04-12 16:22:22

标签: java tomcat jersey jersey-2.0 java-6

我正在尝试使用在Java 1.6上运行的Tomcat 6的Jersey(第2.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)

1 个答案:

答案 0 :(得分:1)

要使其正常工作,您需要:

  1. 来自https://maven.java.net/content/repositories/releases/org/glassfish/jersey/bundles/jaxrs-ri/2.6/jaxrs-ri-2.6.tar.gz

  2. 的2.6 Jersey文件
  3. Genson(帮助JSON显示对象不是"显而易见"对于JSON):http://owlike.github.io/genson/

  4. 将所有这些jar包含在web-inf/lib文件夹中(直接或通过IDE的编译/部署配置)

  5. 确保Web应用程序的类路径中没有任何其他版本的任何罐子或其类别(我的IDE保留旧版本的番石榴)