获取方法签名名称在JAX-WS上形成SOAPMessage

时间:2011-03-07 18:56:18

标签: java soap jax-ws

我正在使用JAX-WS来使用SOAP Web服务,我正在寻找一种简单的方法来查找通过SOAP生成我当前的SOAPMessage的方法

我相信一种方法是检查SOAP Body第一个节点(这是被调用方法的名称),但我没有关于如何从这个SOAPMessage解析SOAP Body的线索

截至目前,我可以将消息输出到我的控制台

提前致谢

2 个答案:

答案 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