我怎么能用JDK 1.7运行jersey 2.26?

时间:2017-07-20 09:30:05

标签: java jersey java-7 jersey-2.0

我正在为我的应用程序使用JDK1.7。

我升级了球衣2.26,现在我收到了错误:

严重: Servlet [Jersey Web Application] in web application [/spcsis-1.0] threw load() exception
java.lang.UnsupportedClassVersionError: org/glassfish/jersey/servlet/ServletContainer : Unsupported major.minor version 52.0 (unable to load class org.glassfish.jersey.servlet.ServletContainer)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3129)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1341)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1827)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1146)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1085)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5318)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5610)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

我已将jdk更改为1.8,然后它可以工作,但我必须使用jdk1.7作为我的项目。

有人可以帮我做吗?

3 个答案:

答案 0 :(得分:10)

从Jersey 2.26开始,所有模块仅支持Java SE 8

见泽西dependencies

  

直到2.6版本,Jersey才使用Java SE 6进行编译   泽西岛2.7改变了。

     

最高版本2.25.x几乎所有Jersey组件都使用   Java SE 7目标。这意味着,您至少需要Java SE 7   能够编译和运行使用最新的应用程序   新泽西州。仅编译核心公共和核心客户端模块   Java类版本可以使用Java SE 6运行。

     

从Jersey 2.26开始,所有模块都是使用Java SE 8构建的   不支持在较旧的Java SE发行版上运行它。

答案 1 :(得分:1)

您唯一的选择是使用Java 7重建球衣。

答案 2 :(得分:1)

你必须使用泽西至2.13,这是JDK 1.7编译的最后一个版本(请查看JAR内的MANIFEST)。