最近项目中用到webservice,在调试过程当中踩了无数的坑,所以,老大让不管是请求方还是服务发布端,都要将相应的报文存入数据库。
由此,我们需要获取相应的报文,因为webservice是通过axis1.4设置的,请求webservice也是通过axis方式调用。所以下面讲的也是axis方式。
1.客户端请求 webservice时,获取请求报文:
obj = call.invoke(new Object[]{senderID, serviceID, userID, password, infoType, infoSet});//调用远程服务接口 MessageContext msgContext = call.getMessageContext(); //获取 请求的 MessageContext Message reqMsg = msgContext.getRequestMessage(); try { qqbw = reqMsg.getSOAPPartAsString(); //获取 SOAP 报文字符串 System.out.println(qqbw); } catch (AxisFault axisFault) { axisFault.printStackTrace(); System.out.println("获取请求报文出错啦------------------------------------------"); }
参考:http://www.what21.com/programming/java/webservice/aw2.html
2.服务端 获取请求报文:
MessageContext mc = MessageContext.getCurrentContext(); Message curMsg = mc.getRequestMessage(); String qqbw = curMsg.getSOAPPartAsString();//请求报文 System.out.println(" 请求报文如下:-------------------------------------------"); System.out.println(qqbw);