【问题标题】:servlet init exception running jersey servlet on tomcat 7 [duplicate]在tomcat 7上运行jersey servlet的servlet初始化异常[重复]
【发布时间】:2016-05-25 22:24:47
【问题描述】:

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

重要的是,当我将.war 扔到在 Windows 上运行的 tomcat 上时,它运行良好。我运行的是最新版本的JREJDK

我已经尝试了所有可以在互联网上找到的方法,但到目前为止都没有奏效。错误堆栈可以在下面找到。

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_HOMEJAVA_HOME 都指向正确的位置 /usr/lib/jvm/jre1.7.0_79/usr/lib/jvm/java-1.7.0-openjdk-amd64

【问题讨论】:

    标签: java tomcat servlets jersey glassfish


    【解决方案1】:

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

    【讨论】:

    • 嗯...它工作,太简单了,我不知道是什么。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 2017-12-20
    • 2021-10-03
    • 2013-08-07
    • 1970-01-01
    • 2021-10-27
    • 2011-12-19
    相关资源
    最近更新 更多