【问题标题】:openshift HTTP Status 500 - Servlet.init() threw exceptionopenshift HTTP 状态 500 - Servlet.init() 抛出异常
【发布时间】:2017-06-25 13:06:11
【问题描述】:

我是 openshift 的新手,我使用 netbeans 和 tomcat 7 开发了一个 restful 服务项目并将其部署在 openshift 上,以便在一个小型 android 项目中使用它来学习一些 android 的东西。 当我使用邮递员从本地主机调用服务时,它返回结果,但是当我从 openshift 调用它时,它返回此错误 HTTP Status 500 - Servlet.init() for servlet Jersey REST Service throw exception 考虑到当我调用项目链接而不扩展 servlet 和服务“servlet 映射”时,它返回相同的 index.html。

这将返回 http 状态 500

http://testandroid-anacondafci.rhcloud.com/AndroidBackEndTest2/services/getStudents/

虽然这行得通 http://localhost:8080/AndroidBackEndTest2/services/getStudents

这是项目的 web.xml 文件 `

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
    <display-name>Testing</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>jersey.config.server.provider.packages</param-name>
      <param-value>BackEndPackage</param-value>
    </init-param>
    <init-param>
      <param-name>jersey.config.server.mvc.templateBasePath.jsp</param-name>
      <param-value>/WEB-INF/jsp</param-value>
    </init-param>
    <init-param>
      <param-name>jersey.config.server.provider.classnames</param-name>
      <param-value>org.glassfish.jersey.server.mvc.jsp.JspMvcFeature</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

`

这是openshift的响应表单

HTTP Status 500 - Servlet.init() for servlet Jersey REST Service threw exception

type Exception report

message Servlet.init() for servlet Jersey REST Service 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 REST Service threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1042)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    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: BackEndPackage/Services : Unsupported major.minor version 52.0 (unable to load class BackEndPackage.Services)
    org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2961)
    org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    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.<init>(ResourceConfig.java:1171)
    org.glassfish.jersey.server.ResourceConfig$RuntimeConfig.<init>(ResourceConfig.java:1144)
    org.glassfish.jersey.server.ResourceConfig.createRuntimeConfig(ResourceConfig.java:1140)
    org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:299)
    org.glassfish.jersey.servlet.WebComponent.<init>(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:501)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:683)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1042)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
    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)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.

感谢关注

【问题讨论】:

    标签: rest jakarta-ee deployment openshift postman


    【解决方案1】:

    例外:

    UnsupportedClassVersionError: BackEndPackage/Services : Unsupported major.minor version 52.0 
    

    指向 java 版本问题。如果您在本地构建应用程序然后部署到 OpenShift,则 OpenShift 中的 Java 版本可能比您编译应用程序时使用的 Java 版本更旧。

    主版本 52 表示代码是使用 Java 8 编译的。您可以尝试使用 Java 7 编译并再次部署您的应用程序。

    如果您使用 maven 进行构建,您可以使用以下命令设置源版本和目标版本:https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html

    【讨论】:

      猜你喜欢
      • 2013-02-04
      • 2015-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2020-01-25
      相关资源
      最近更新 更多