我想将RAW请求响应XML打印到控制台.我使用wsdl2java axis2创建了存根.
wsdl2java创建了2个java文件,一个用于存根,一个用于callbackhandler.
我正在尝试使用以下方法,但获取null值
operationContext.getMessageContext("Out");
/
operationContext.getMessageContext("In");.
Run Code Online (Sandbox Code Playgroud)
码
public void SOAPLogHandler(Stub stub){
ServiceContext serviceConxt = stub._getServiceClient().getServiceContext();
//**** Enable the Cache to hold the last operation
OperationContext OperationContext = new OperationContext();
boolean cacheLastOperationContext = true;
OperationContext.setComplete(true); // Enable the Cache value
serviceConxt.setCachingOperationContext(cacheLastOperationContext);
serviceConxt.setLastOperationContext(OperationContext);
OperationContext operationContext = serviceConxt.getLastOperationContext();
if (operationContext != null) {
MessageContext outMessageContext = operationContext.getMessageContext("Out");
operationContext.getMessageContexts();
if (outMessageContext != null) {
System.out.println("OUT SOAP: "+outMessageContext.getEnvelope().toString());
}
MessageContext inMessageContext = operationContext.getMessageContext("In");
if (inMessageContext != null) {
System.out.println("IN SOAP: "+ inMessageContext.getEnvelope().toString());
}
}
Run Code Online (Sandbox Code Playgroud)
你可以告诉我有没有其他方法来获取原始xml
kek*_*lab 12
我设法通过在存根(您调用以调用Web服务的那个)的方法中添加几行来实现.我确定了这条线,即
_operationClient.execute(true);
Run Code Online (Sandbox Code Playgroud)
有效地联系Web服务并在其之后添加:
_operationClient.getMessageContext("Out").getEnvelope().serialize(System.out);
_operationClient.getMessageContext("In").getEnvelope().serialize(System.out);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7113 次 |
| 最近记录: |