2012-03-12 36 views
11

hãy giúp hiện tôi đang xây dựng một hệ thống cho phép số (1.12) một cách yên tĩnh được gọi bởi một số dịch vụ web (Axis2) trường hợp như sau:com.sun.ws.rs.ext.RuntimeDelegateImpl lỗi

khách hàng -> webservice (Axis2) -> dịch vụ an toàn (Jersey 1.12) ... chạy trong tomcat Apache 7 có một số vấn đề xảy ra bất cứ khi nào tôi cố gắng gọi áo. nói rằng

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

đây lỗi hoàn toàn trong 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 

Tôi đoán nó gây ra bởi thiếu một số lọ hoặc trong lib apache hoặc trong axisservice tôi lib thực sự tôi đặt tất cả các lọ jersey vào axisservice lib ,,, Tôi đã kiểm tra axis2 -> restful với webservice test explorer trong eclipse, nó hoạt động tốt nhưng bất cứ khi nào tôi thử nó từ một máy khách (như tôi đã thấy trong kịch bản trên) nó không hoạt động.

lời khuyên Xin vui lòng, cảm ơn trước

Trả lời

20

Gói com.sun.ws.rs.ext, và do đó RuntimeDelegateImpl, được chứa trong lọ jersey khách hàng. Nếu bạn đang sử dụng maven sau đó thêm sự phụ thuộc này để pom.xml của bạn (ở đây tôi đang sử dụng v1.12 jersey khách hàng):

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

Vui lòng thêm sự phụ thuộc sau đây trong dự án maven bạn mà cung cấp thi hành RuntimeDelegate

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