[WebService] Found element {} name but could not find matching RPC/Literal p
无双Rama
2012-03-08
最近在做一个东西,用spring + cxf实现,在代码中实现了读取soap.xml文件,发送请求调用webservice方法,并且可以成功获取返回的soap消息,但是我改成在代码中拼接soap消息然后发送时,就报错:
Found element {http://demo.other/}name but could not find matching RPC/Literal part public void soapOperWebPage(HttpServletRequest request, HttpServletResponse response) throws UnsupportedOperationException, SOAPException, Exception { SOAPConnectionFactory connectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = connectionFactory.createConnection(); String encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"; MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage message = messageFactory.createMessage(); SOAPPart soapPart = message.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.removeNamespaceDeclaration("SOAP-ENV"); envelope.setPrefix("soap"); SOAPHeader header = envelope.getHeader(); header.setPrefix("soap"); SOAPBody body = envelope.getBody(); body.setPrefix("soap"); // body.setEncodingStyle(encodingStyle); // soapPart. // 添加body SOAPElement bodyElement = body.addChildElement(new QName("http://demo.other/", "getUserByName", "ns1")); SOAPElement memberElement = bodyElement.addChildElement("name", "ns1").addTextNode(request.getParameter("username")); File reqFile = new File("D:\\jay\\reqSOAP.xml"); OutputStream reqSoap = new FileOutputStream(reqFile); File respFile = new File("D:\\jay\\respSOAP.xml"); OutputStream respSoap = new FileOutputStream(respFile); message.saveChanges(); System.out.println("\nREQUEST:\n"); message.writeTo(reqSoap); System.out.println(message.toString()); // 发送消息 SOAPMessage reply = connection.call(message, ADDRESS); System.out.println("\nRESPONSE:\n"); reply.writeTo(response.getOutputStream()); reply.writeTo(respSoap); System.out.println(reply.toString()); connection.close(); } |
|
无双Rama
2012-03-08
打断点看一下 RPCInInterceptor.class里面第170行不通过
if(!qn.equals(part.getConcreteName())) qn 值是{http://demo.other/}name ,而part.getConcreteName()值是 name |
|
无双Rama
2012-03-08
拼接的soap消息格式:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Header/> <soap:Body> <ns1:getUserByName xmlns:ns1="http://demo.other/"> <ns1:name>jaychou</ns1:name> </ns1:getUserByName> </soap:Body> </soap:Envelope> 返回的消息: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <soap:Fault> <faultcode>soap:Server</faultcode> <faultstring> Found element {http://demo.other/}name but could not find matching RPC/Literal part </faultstring> </soap:Fault> </soap:Body> </soap:Envelope> |
|
无双Rama
2012-03-08
我把发送前拼接的soap以文件的方式放在本地用流读取进来,然后发送出去,却可以正确执行!! 这是最奇怪的地方
请各位大大指点一下,谢谢 |
|
无双Rama
2012-03-09
这个群组也太冷清了吧~~~都没人回复呀
|
|
wanghuanqiu
2012-03-09
<ns1:name>jaychou</ns1:n>应该不需要命名空间的
直接<name>jaychou</name>。我没有自己拼过xml文件,自己试一下吧 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"这个要加一下 |
|
无双Rama
2012-03-12
wanghuanqiu 写道 <ns1:name>jaychou</ns1:n>应该不需要命名空间的
直接<name>jaychou</name>。我没有自己拼过xml文件,自己试一下吧 encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"这个要加一下 非常感谢! |
|
eric474470
2013-09-12
大侠,这个问题解决了吗?
我遇到了同样的问题 对方是axis1.0的 调用我这边cxf的方法 结果就出现了上面的问题。 如果解决请指教? 我的邮箱zhyguyun0501@126.com 谢谢 |
|
无双Rama
2013-09-12
eric474470 写道 大侠,这个问题解决了吗?
我遇到了同样的问题 对方是axis1.0的 调用我这边cxf的方法 结果就出现了上面的问题。 如果解决请指教? 我的邮箱zhyguyun0501@126.com 谢谢 就是楼上的楼上的说的那样,就解决了 |
相关讨论
相关资源推荐
- 问题处理: Found element arg0 but could not find matching RPC/Literal part
- cxf客户端调用webservice,出现问题 Found element arg0 but could not find matching RPC/Literal part
- CXF中could not find matching RPC/Literal part问题处理
- cxf实现的webservice,调用接口的方法后出现异常
- ibatis 错误
- System Error Codes/系统错误代码
- 高通平台环境搭建,编译,系统引导流程分析
- gsoap xml 自动映射 C/C++
- Jmeter_初步认识随笔
- 12C ORA-错误汇总2 ORA-00910 to ORA-01497