【发布时间】:2016-05-25 22:24:47
【问题描述】:
我正在尝试在 ubuntu 上运行的 tomcat7 上部署一个 rest 应用程序。使用应用程序管理器部署 .war 文件后,当我访问 url 时,它抛出了一个异常。
重要的是,当我将.war 扔到在 Windows 上运行的 tomcat 上时,它运行良好。我运行的是最新版本的JRE 和JDK。
我已经尝试了所有可以在互联网上找到的方法,但到目前为止都没有奏效。错误堆栈可以在下面找到。
HTTP 状态 500 - servlet Jersey Web 应用程序的 Servlet.init() 抛出异常
输入异常报告
servlet Jersey Web 应用程序的消息 Servlet.init() 抛出 异常
描述服务器遇到阻止它的内部错误 完成此请求。
异常
javax.servlet.ServletException: Servlet.init() 用于 servlet Jersey Web 应用程序抛出异常 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.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.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.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(Thread.java:745)
根本原因
java.lang.UnsupportedClassVersionError: br/unicamp/ft/courseviewer/resource/TodasDisciplinasResource: 不支持的major.minor 52.0版(无法加载类 br.unicamp.ft.courseviewer.resource.TodasDisciplinasResource) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:3111) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1348) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1828) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1709) java.lang.Class.forName0(本机方法) java.lang.Class.forName(Class.java:278) org.glassfish.jersey.internal.util.ReflectionHelper$6.run(ReflectionHelper.java:374) org.glassfish.jersey.internal.util.ReflectionHelper$6.run(ReflectionHelper.java:369) java.security.AccessController.doPrivileged(本机方法) org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener$AnnotatedClassVisitor.getClassForName(AnnotationAcceptingListener.java:257) org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener$AnnotatedClassVisitor.visitEnd(AnnotationAcceptingListener.java:219) org.objectweb.asm.ClassReader.accept(ClassReader.java:1495) org.objectweb.asm.ClassReader.accept(ClassReader.java:425) org.glassfish.jersey.server.internal.scanning.AnnotationAcceptingListener.process(AnnotationAcceptingListener.java:169) org.glassfish.jersey.server.ResourceConfig.scanClasses(ResourceConfig.java:883) org.glassfish.jersey.server.ResourceConfig._getClasses(ResourceConfig.java:840) org.glassfish.jersey.server.ResourceConfig.getClasses(ResourceConfig.java:755) org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.(ResourceConfig.java:1171) org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.(ResourceConfig.java:1144) org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1140) org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:299) org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:311) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:169) org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:359) javax.servlet.GenericServlet.init(GenericServlet.java:158) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:423) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.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.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.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(Thread.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_HOME 和 JAVA_HOME 都指向正确的位置 /usr/lib/jvm/jre1.7.0_79 和 /usr/lib/jvm/java-1.7.0-openjdk-amd64
【问题讨论】:
标签: java tomcat servlets jersey glassfish