我正在使用JAX-WS来使用SOAP Web服务,我正在寻找一种简单的方法来查找通过SOAP生成我当前的SOAPMessage的方法
我相信一种方法是检查SOAP Body第一个节点(这是被调用方法的名称),但我没有关于如何从这个SOAPMessage解析SOAP Body的线索
截至目前,我可以将消息输出到我的控制台
提前致谢
答案 0 :(得分:4)
但我不确定我理解你的问题:
如果您将soap消息作为处理程序的一部分进行处理,则可以从SOAPMessageContext中调用服务和操作:
QName svcn = (QName) context.get(MessageContext.WSDL_SERVICE);
svcn.getLocalPart();
QName opn = (QName) context.get(MessageContext.WSDL_OPERATION);
opn.getLocalPart();
如果您只想在客户端代码中处理SOAPMessage,并想知道SOAP Body中包含哪个元素:
msg.getSOAPBody().getFirstChild().getLocalName()
SOAPMessage将envilope的每个部分公开为DOM对象,因此您可以使用它来执行普通的“DOM”事务。
答案 1 :(得分:1)
对某人有用,这是FrustratedWithFormsDesigner问题的答案:我的消息处理程序中似乎是NULL。
请看这个。这正是为什么它为null的解释:
http://blog.vinodsingh.com/2009/03/how-to-get-operation-name-in-jax-ws.html