异常信息如下:
Exception in thread "main" javax.xml.ws.soap.SOAPFaultException: Unexpected wrapper element {http://client.webwervice.common.navidog.cn/}getListPnameByuid found. Expected {http://cxfwebservice.common.navidogdatabase.tiros.com.cn/}getListPnameByuid.
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:146)at $Proxy30.getListPnameByuid(Unknown Source)
at cn.navidog.front.users.testwebservice.main(testwebservice.java:25)
Caused by: org.apache.cxf.binding.soap.SoapFault: Unexpected wrapper element {http://client.webwervice.common.navidog.cn/}getListPnameByuid found. Expected {http://cxfwebservice.common.navidogdatabase.tiros.com.cn/}getListPnameByuid.
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46)
at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:99)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69)
at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:755)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2335)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2193)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:2037)
at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:188)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:697)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:255)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:516)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:265)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:124)
解决 方法:将客户端中的Service的包名改成与服务端中的一致,问题解决。
评论:
1、好多人都说要把客户端的包结构改成和服务器端一样的,其实是不需要的,具体原理可看http://lost-alien.iteye.com/blog/1175859
2、
@WebService(endpointInterface = "com.mywebapp.ws.service.SomeService")中,加上一个属性 , targetNamespace="http://service.ws.mywebapp.com/",这下问题就解决了。其中http://后面的是服务器端的接口包路径
-
3楼
泽柄李双 2012-07-04 09:20发表[回复] [引用] [举报]
-
-
晕,公司之间相互调用,并且没有对方技术员的情况下,你怎么知道对方是用的什么包?
-
Re:
YY_LOVE_MY 2013-01-04 12:45发表[回复] [引用] [举报]
-
-
回复bisubisu:org.apache.cxf.binding.soap.SoapFault: Unexpected wrapper element {http://cn.com/}test found. Expected {http://service.creadit.com/}test.
按照您说的http://后面的是服务器端的接口包路径,貌似没有用哦,可否说再详细一点呢,@WebServic(endpointInterface = "com.mywebapp.ws.service.SomeService")是客户端中的吧?表示不太清楚-
Re:
泽柄李双 2013-01-04 13:45发表[回复] [引用] [举报]
-
-
回复YY_LOVE_MY:我也搞不完全明白WEBSERVICE
-
Re:
YY_LOVE_MY 2013-01-04 14:40发表[回复] [引用] [举报]
-
- 回复bisubisu:弄好了,@WebService(endpointInterface = "com.mywebapp.ws.service.SomeService")中,加上一个属性 , targetNamespace="http://service.ws.mywebapp.com/",要说明的是@WebService是自己写的接口类中声明的那个而非客户端生成的,在后边需定义好命名空间
-
-
-
-
1楼
q757989418 2012-04-16 14:07发表[回复] [引用] [举报]
-
-
改了包名还是不行啊,看看我的错误
Unexpected wrapper element {http://level1.services.sdk.actionsoft.com}createSession1 found. Expected {http://level1.services.sdk.actionsoft.com/}createSession1.该怎么解决