openshift HTTP状态500 - Servlet.init()抛出异常

时间:2017-02-08 03:36:33

标签: rest java-ee deployment openshift postman

我是openshift的新手,我使用netbeans和tomcat 7开发了一个宁静的服务项目,并在openshift上部署它,在一个小的android项目中使用它来学习一些android的东西。 当我使用postman从localhost调用服务时它返回结果,但是当我从openshift调用它时,它返回此错误 HTTP状态500 - 用于servlet的Servlet.init()Jersey REST服务抛出异常 考虑到当我调用项目链接而没有servlet和服务“servlet mapping”的扩展时它返回相同的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.

感谢您的兴趣

1 个答案:

答案 0 :(得分:0)

例外:

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