我正在使用 axis2 Web 服务客户端,我想捕获请求和响应原始 xml。我创建了一个 LogHandler 来读取响应原始 xml,但我不知道如何在 axis2 Web 服务中配置此 LogHandler 文件。您能帮助我如何配置此 LogHandler 或告诉我是否有任何方法来获取请求和响应 xml。
import org.apache.axis2.AxisFault;`enter code here`
import org.apache.axis2.context.MessageContext;`enter code here`
import org.apache.axis2.engine.Handler;`enter code here`
import org.apache.axis2.handlers.AbstractHandler;`enter code here`
import org.apache.axis2.description.AxisService;`enter code here`
import org.apache.log4j.Logger;`enter code here`
public class LogHandler extends AbstractHandler implements Handler {
private static Logger logger = Logger.getLogger(LogHandler.class);
private String name;
public LogHandler() {
System.out.println(" & from LogHandler &&& constructor :");
}
public String getName() {
System.out
.println("LogHandler.getName() LogHandlerLogHandlerLogHandlerLogHandlerLogHandler");
return name;
}
public InvocationResponse invoke(MessageContext msgContext)
throws AxisFault {
logger.info("***" + msgContext.getEnvelope().toString());
System.out.println("LogHandler.invoke()"
+ msgContext.getEnvelope().toString());
AxisService axService = msgContext.getAxisService();
logger.info("*Service******" + axService.toString());
System.out.println("*axService******" + axService.toString());
return InvocationResponse.CONTINUE;
}
public void revoke(MessageContext msgContext) {
System.out.println("& LogHandler.revoke()");
}
public void setName(String name) {
System.out.println("LogHandler " + name);
this.name = name;
}
}
最佳答案
您可以定义自定义阶段并在其中添加处理程序,然后查看处理程序是否执行。 //我已在 axis2.xml 中添加了以下配置,但服务未运行。//似乎您的消息流已损坏。
检查这个flowing guide.
关于java - 如何读取 axis2 Web 服务中的 SOAP 原始请求和响应消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22604234/