是否可以通过在客户端使用处理程序来获取通过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;
}
}
答案 0 :(得分:2)
是否可以通过Web服务调用获取参数 通过在客户端使用处理程序?
答案很简单:是的,这是可能的。您可以从SOAPMessageContext
中提取soap消息,如下所示:
public boolean handleMessage(SOAPMessageContext context) {
SOAPMessage message = context.getMessage();
SOAPHeader header = message.getSOAPHeader();
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
}
只要您有肥皂信封,就可以从SOAP
消息中获取任何参数。