servlet init exception running jersey servlet on tomcat 7 [duplicate]

杀马特。学长 韩版系。学妹 提交于 2019-12-12 03:47:54

问题


i'm trying to deploy a rest application on tomcat7 that is running on ubuntu. After deploying the .war file using the application manager, when i access the url, its thrown me an exception.

It's important to say that, when i threw the .war on tomcat running on windows, it worked perfetly. I was running the latest versions of JRE and JDK.

I've tried everything i could find on the internet, but none worked so far. The error stack can be found below.

HTTP Status 500 - Servlet.init() for servlet Jersey Web Application threw exception

type Exception report

message Servlet.init() for servlet Jersey Web Application threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet Jersey Web Application threw exception 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)

root cause

java.lang.UnsupportedClassVersionError: br/unicamp/ft/courseviewer/resource/TodasDisciplinasResource : Unsupported major.minor version 52.0 (unable to load class 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(Native Method) 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(Native Method) 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)

This is my jdk version.

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)

Both JRE_HOME and JAVA_HOME are pointing to the right place /usr/lib/jvm/jre1.7.0_79 and /usr/lib/jvm/java-1.7.0-openjdk-amd64


回答1:


You have a mismatch in Java version on your local machine and your Ubuntu server. I think you have Java 8 on your local machine that you used to generate your war file. You should either update Java on your server or compile with a JDK 7 to generate your war file. You can use your IDE to compile with a different version.



来源:https://stackoverflow.com/questions/37448655/servlet-init-exception-running-jersey-servlet-on-tomcat-7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!