从SOAPMessageContext获取方法参数

时间:2012-09-27 09:58:19

标签: java web-services jax-ws handler

是否可以通过在客户端使用处理程序来获取通过Web服务调用传递的参数?我正在尝试记录我每次发送到网络服务的参数。

在此追逐中,使用我已分配给Web服务的jax-ws处理程序。这是处理程序外观和方法的一个简单而常见的示例。

    public class RafaSOAPHandler implements SOAPHandler<SOAPMessageContext> {

        @Override
        public boolean handleMessage(SOAPMessageContext context) {
        System.out.println("Client : handleMessage()......");
             // TODO: GET METHOD PARAMETERS HERE.
        return true;
        }

        @Override
        public boolean handleFault(SOAPMessageContext context) {
        System.out.println("Client : handleFault()......");
        return true;
        }

        @Override
        public void close(MessageContext context) {
        System.out.println("Client : close()......");
        }

        @Override
        public Set<QName> getHeaders() {
        System.out.println("Client : getHeaders()......");
        return null;
        }

    }

1 个答案:

答案 0 :(得分:2)

  

是否可以通过Web服务调用获取参数   通过在客户端使用处理程序?

答案很简单:是的,这是可能的。您可以从SOAPMessageContext中提取soap消息,如下所示:

public boolean handleMessage(SOAPMessageContext context) {
    SOAPMessage message = context.getMessage();
    SOAPHeader header = message.getSOAPHeader();
    SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
}

只要您有肥皂信封,就可以从SOAP消息中获取任何参数。