由jersey-core(UriComponent $ Type)提供的类上的NoClassDefFoundError

时间:2014-11-18 14:22:30

标签: java spring jax-rs weblogic-10.x

我正在使用WebLogic 10.2c。我的包含jax-rs资源的webapp在grizzley中工作正常但是当它根据http://docs.oracle.com/cd/E17904_01/web.1111/e13734/rest.htm部署到WebLogic时,它会抛出NoClassDefFoundError,如下所示。奇怪的是,这个类确实可以通过我的webapp加载,并在我的servlet中完成class.forName()。所以,不知何故,这个班级已经无法用于球衣本身。有关如何进行故障排除的任何想法?我尝试使用泽西作为共享库(因此不包括在我的.war文件中)并将jersey包含在我的.war文件中。要么有所不同。

Error 500--Internal Server Error
java.lang.NoClassDefFoundError: com/sun/jersey/api/uri/UriComponent$Type
     at com.sun.jersey.api.uri.UriBuilderImpl.appendPath(UriBuilderImpl.java:497)
     at com.sun.jersey.api.uri.UriBuilderImpl.appendPath(UriBuilderImpl.java:485)
     at com.sun.jersey.api.uri.UriBuilderImpl.replacePath(UriBuilderImpl.java:244)
     at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:687)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:844)
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:242)
     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:216)
     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:132)
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:352)
     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:235)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3284)
     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3254)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
     at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57)
     at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2163)
     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2089)
     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2074)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1512)
     at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:254)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

1 个答案:

答案 0 :(得分:3)

清洁项目。 顶部菜单 - 项目 - >干净。 然后重启服务器。 这对我有用。