使用Jersey的OpenShift Rest Web服务不起作用

时间:2014-06-11 13:32:35

标签: rest web jersey openshift

我正在开发一个使用Struts2开发的具有Web UI的应用程序。同一应用程序还公开了基于Rest的Web服务。我正在使用Jersey和Jsr311。

我的问题是,当我在Openshift Tomcat 6.0(JBoss EWS 1.0)上运行应用程序时,UI工作得很好,但是当我尝试访问Web服务时,我得到以下异常:

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

java.lang.ClassNotFoundException: com.sun.jersey.spi.inject.Errors$Closure
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
com.sun.jersey.server.impl.container.WebApplicationProviderImpl.createWebApplication(WebApplicationProviderImpl.java:55)
com.sun.jersey.spi.container.WebApplicationFactory.createWebApplication(WebApplicationFactory.java:66)
com.sun.jersey.spi.container.servlet.ServletContainer.create(ServletContainer.java:391)
com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.create(ServletContainer.java:306)
com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605)
com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:208)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
javax.servlet.GenericServlet.init(GenericServlet.java:212)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:652)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Thread.java:744

同样的应用程序,当我在我的本地机器上运行eclipse时运行完全正常。请帮忙,因为我无法继续前进。

1 个答案:

答案 0 :(得分:0)

确保在pom.xml文件中指定了所有依赖项,并确保在使用Tomcat的本地计算机上使用的OpenShift上使用相同版本的Java(Java 6 vs Java 7)。另请注意,OpenShift使用OpenJDK而不是Sun JDK。