[英]how to get child element from SOAP body?
How can I get clientCode from requestHeader which is located under SOAP body? 如何从位于SOAP主体下的requestHeader获取clientCode?
<soapenv:Body>
<ser:GS>
<!--Optional:-->
<requestHeader>
<!--Optional:-->
<req:clientCode>KL7MU</req:clientCode>
<!--Optional:-->
<req:clientUsername>BLABLA</req:clientUsername>
</requestHeader>
</ser:GS>
</soapenv:Body>
I try to get but iterator.hasNext()
returns false
. 我尝试获取,但是
iterator.hasNext()
返回false
。
SOAPBody soapBody = context.getMessage().getSOAPBody();
java.util.Iterator iterator = soapBody.getChildElements();
while (iterator.hasNext()) {
SOAPBodyElement bodyElement = (SOAPBodyElement) iterator.next();
String val = bodyElement.getValue();
System.out.println("The Value is:" + val);
}
You can use wsdl to generate java class: 您可以使用wsdl生成Java类:
wsimport stock.wsdl -b stock.xml -b stock.xjb
wsimport -d generated http://example.org/stock?wsdl
Then you can call SOAP services as local methods. 然后,您可以将SOAP服务作为本地方法调用。
Some other tools: 其他一些工具:
wsdl2javawizard: http://sourceforge.net/projects/wsdl2javawizard/ wsdl2javawizard: http : //sourceforge.net/projects/wsdl2javawizard/
apache cxf: http://cxf.apache.org/docs/wsdl-to-java.html apache cxf: http : //cxf.apache.org/docs/wsdl-to-java.html
instead of getting form SOAP message body try the child elements form SOAP message header like context.getMessage().getSOAPPart().getEnvelope().getHeader(); 而不是获取表单SOAP消息主体,请尝试使用SOAP消息头的子元素,例如context.getMessage()。getSOAPPart()。getEnvelope()。getHeader();。 details : http://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/
详细信息: http : //www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/
You can get the values like in axiom, 您可以获得类似公理的值,
SOAPEnvelope mes = messageContext.getEnvelope();
SOAPHeader mesh = mes.getHeader();
SOAPBody mesb = mes.getBody();
OMElement messageId = mesh.getFirstChildWithName(new QName("http://www.w3.org/2005/08/addressing","MessageID"));
String messageIDStr = messageId.getText();
OMElement bodyChild = mesb.getFirstElement();
OMElement remoteAddress = bodyChild.getFirstChildWithName(new QName(
"http://YourNameSpaceURI",
"remoteAddress"));
String remoteAddressStr = remoteAddress.getText();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.