com.sun.ws.rs.ext.RuntimeDelegateImpl错误

时间:2012-03-12 11:57:44

标签: apache jersey axis2

请帮忙 目前我正在构建一个系统,允许一些Web服务(Axis2)调用restful(jersey 1.12) 场景是这样的:

客户 - > webservice(Axis2) - > restful services(Jersey 1.12)...在tomcat Apache 7中运行 每当我试图调用球衣时都会出现一些问题。说那个

java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl

这里是apache中的完整错误,

[ERROR] java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl 
java.lang.reflect.InvocationTargetException 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. 
java:57) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces 
sorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:601) 
        at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.jav 
a:212) 
        at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic 
(RPCMessageReceiver.java:117) 
        at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusines 
sLogic(AbstractInOutMessageReceiver.java:40) 
        at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMe 
ssageReceiver.java:110) 
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:181) 
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq 
uest(HTTPTransportUtils.java:172) 
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:1 
46) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:641) 
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl 
icationFilterChain.java:305) 
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF 
ilterChain.java:210) 
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV 
alve.java:224) 
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV 
alve.java:169) 
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica 
torBase.java:472) 
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j 
ava:168) 
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j 
ava:98) 
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 
927) 
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal 
ve.java:118) 
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav 
a:407) 
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp 
11Processor.java:987) 
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process( 
AbstractProtocol.java:579) 
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin 
t.java:307) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor. 
java:1110) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor 
.java:603) 
        at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.sun 
.ws.rs.ext.RuntimeDelegateImpl 
        at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:112) 

        at javax.ws.rs.core.UriBuilder.newInstance(UriBuilder.java:69) 
        at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:80) 
        at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:99) 
        at wsPackage.TweetClass.getBaseURI(TweetClass.java:46) 
        at wsPackage.TweetClass.tweet(TweetClass.java:39) 
        ... 29 more 
Caused by: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateIm 
pl 
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa 
der.java:1701) 
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoa 
der.java:1546) 
        at javax.ws.rs.ext.FactoryFinder.newInstance(FactoryFinder.java:44) 
        at javax.ws.rs.ext.FactoryFinder.find(FactoryFinder.java:141) 
        at javax.ws.rs.ext.RuntimeDelegate.getInstance(RuntimeDelegate.java:95) 
        ... 34 more 

我猜这是因为在apache lib或我的axisservice lib中丢失了一些jar 实际上我把所有的球衣罐放入了轴服务器,我已经测试了轴2 - >在eclipse中使用webservice测试资源管理器,它运行得很好 但每当我从客户端尝试它时(正如我在上面的场景中所示),它都不起作用。

请提前建议,谢谢

2 个答案:

答案 0 :(得分:23)

com.sun.ws.rs.ext包以及RuntimeDelegateImpl包含在jersey客户端jar中。如果您正在使用maven,那么将此依赖项添加到您的pom.xml(这里我使用的是jersey客户端v1.12):

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-client</artifactId>
    <version>1.12</version>
</dependency>

答案 1 :(得分:2)

请在maven项目中添加以下依赖项,以提供RuntimeDelegate的实现

<dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-bundle-jaxrs</artifactId>
        <version>2.7.18</version>
</dependency>