我正在为我的应用程序使用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作为我的项目。
有人可以帮我做吗?答案 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)。