在tomcat 7上运行jersey servlet的servlet init异常



我正试图在运行在ubuntu上的tomcat7上部署一个rest应用程序。在使用应用程序管理器部署.war文件后,当我访问url时,它向我抛出了一个异常。

重要的是,当我在windows上运行的tomcat上抛出.war时,它运行得很好。我运行的是JREJDK的最新版本。

我试过在网上能找到的所有东西,但到目前为止都不起作用。错误堆栈可以在下面找到。

HTTP状态500-Servlet Jersey Web应用程序的Servlet.init()引发异常

类型异常报告

Servlet Jersey Web应用程序的消息Servlet.init()引发异常

description服务器遇到内部错误,导致无法运行无法满足此请求。

异常

javax.servlet.ServletException:servlet Jersey Web的servlet.ini()应用程序引发异常org.apache.catalina.authenticator.AuthenticatorBase.ioke(AuthenticatorBase.java:505)org.apache.catalina.vals.ErrorReportValve.ioke(ErrorReportValve.java:103)org.apache.catalina.vals.AccessLogValve.ioke(AccessLogValve.java:956)org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:423)org.apache.coyote.http11.AbstractHttp11Processor.procedure(AbstractHttp11Processer.java:1079)org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1145)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(线程.java:745)

根本原因

java.lang.UnsupportedClassVersionError:br/unicamp/ft/courseviewer/resource/TodasDisciprinasResource:不支持的major.minor版本52.0(无法加载类br/unicamp.ft.curseviewer.resource.TodasDisciplinsResource)org.apache.catalina.loarder.WebappClassLoader.findClassInternal(WebappClassLoader.java:3111)org.apache.catalina.loarder.WebappClassLoader.findClass(WebappClassLoader.java:1348)org.apache.catalina.loarder.WebappClassLoader.loadClass(WebappClassLoader.java:1828)org.apache.catalina.loarder.WebappClassLoader.loadClass(WebappClassLoader.java:1709)java.lang.Class.forName0(本机方法)java.lang.Class.forName(Class.java:278)org.glassfish.jersy.internal.util.ReflectionHelper$6.run(ReflectionHelper.java:374)org.glassfish.jersy.internal.util.ReflectionHelper$6.run(ReflectionHelper.java:369)java.security.AccessController.doPrivileged(本机方法)org.glassfish.jersy.server.internal.scanning.AnnotationAcceptingListener$AnnotatedClassVisitor.getClassForName(AnnotationAccentingListener.java:257)org.glassfish.jersy.server.internal.scanning.AnnotationAcceptingListener$AnnotatedClassVisitor.visitEnd(AnnotationAccentingListener.java:219)org.objectweb.asm.ClassReader.accept(ClassReader.java:1495)org.objectweb.asm.ClassReader.accept(ClassReader.java:425)org.glassfish.jersy.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAccentingListener.java:169)org.glassfish.jersy.server.ResourceConfig.scanClasses(ResourceConfig.java:883)org.glassfish.jersy.server.ResourceConfig.getClasses(ResourceConfig.java:840)org.glassfish.jersy.server.ResourceConfig.getClasses(ResourceConfig.java:755)org.glassfish.jersy.server.ResourceConfig$RuntimeConfig.(ResourceConfig.java:1171)org.glassfish.jersy.server.ResourceConfig$RuntimeConfig.(ResourceConfig.java:1144)org.glassfish.jersy.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1140)org.glassfish.jersy.server.ApplicationHandler。(ApplicationHandler。java:299)org.glassfish.jersy.servlet.WebComponent.(WebComponent.java:311)org.glassfish.jersy.servlet.ServletContainer.init(ServletContainer.java:169)org.glassfish.jersy.servlet.ServletContainer.init(ServletContainer.java:359)javax.servlet.GenericServlet.init(GenericServlet.java:158)org.apache.catalina.authenticator.AuthenticatorBase.ioke(AuthenticatorBase.java:505)org.apache.catalina.vals.ErrorReportValve.ioke(ErrorReportValve.java:103)org.apache.catalina.vals.AccessLogValve.ioke(AccessLogValve.java:956)org.apache.catalina.connecter.CoyoteAdapter.service(Coyotedapter.java:423)org.apache.coyote.http11.AbstractHttp11Processor.procedure(AbstractHttp11Processer.java:1079)org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)java.util.concurrent.ThreadPoolExecutiator.runWorker(ThreadPoolExecutiator.java:1145)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(线程.java:745)

这是我的jdk版本。

java version "1.7.0_101"
OpenJDK Runtime Environment (IcedTea 2.6.6) (7u101-2.6.6-0ubuntu0.15.10.1)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

JRE_HOMEJAVA_HOME都指向正确的位置/usr/lib/jvm/jre1.7.0_79/usr/lib/jvm/java-1.7.0-openjdk-amd64

本地机器和Ubuntu服务器上的Java版本不匹配。我认为您的本地机器上有Java 8,用于生成战争文件。您应该在服务器上更新Java,或者使用JDK7进行编译以生成您的war文件。您可以使用IDE使用不同的版本进行编译。

最新更新