我试图在ubuntu上运行的tomcat7上部署一个rest应用程序。在使用应用程序管理器部署.war
文件后,当我访问该URL时,它会抛出异常。
重要的是,当我把.war
扔在运行在窗口上的tomcat上时,它很快就起作用了。我运行的是最新版本的JRE
和JDK
。
我已经尝试了我能在互联网上找到的所有东西,但到目前为止还没有。错误堆栈可以在下面找到。
HTTP状态500 - Servlet的Servlet.init()Jersey Web应用程序抛出异常
输入例外报告
消息Servlet.init()用于servlet Jersey Web应用程序抛出 例外
description服务器遇到阻止它的内部错误 完成此请求。
例外
javax.servlet.ServletException:servlet Jersey Web的Servlet.init() 申请引发了异常 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
答案 0 :(得分:1)
您的本地计算机和Ubuntu服务器上的Java版本不匹配。我认为您在本地计算机上使用Java 8来生成war文件。您应该在服务器上更新Java或使用JDK 7编译以生成war文件。您可以使用IDE使用其他版本进行编译。