CXF中could not find matching RPC/Literal part问题处理

        前段时间,项目中涉及到和别的系统之间交互,对方的系统使用的是.NET,我们是J2EE平台,使用的WebService中的CXF框架。主要是我们这边调用对方系统公开的WebService。我使用Myeclipse工具生成的客户端存根。程序非常简单,但是总是报以下的错误:

        Interceptor for {http://这个部分是Webservice的地址部分,省去}ExpertChoiceService#{http://这个部分是Webservice的地址部分,省去}Insert has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Found element {http://这个部分是Webservice的地址部分,省去}InsertReturn but could not find matching RPC/Literal part
        at org.apache.cxf.binding.soap.interceptor.RPCInInterceptor.handleMessage(RPCInInterceptor.java:171)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:700)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2261)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2134)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1988)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:639)
        at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:487)
        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)

        最后经过查看到上边错误堆栈标红的部分,再查看WSDL文件后确定是WebService之间信息交互的编码格式问题,WebService的编码格式有两种Literal、Encoded。其中Encoded是比较古老的编码方式,现在WebServcie标准官方已经不建议使用了。CXF不支持这种编码格式,所以最简便的办法是换其他框架。而我所知道的支持这种编码格式的只有Axis1.x,换成这个版本,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值