gpt4 book ai didi

java - 如何在 Spring 中查看 SOAP 请求的 XML 输出?

转载 作者:行者123 更新时间:2023-11-29 04:51:20 25 4
gpt4 key购买 nike

我是 Spring SOAP 请求的新手。我想查看 SOAP 请求的最终 XML 输出,其中包括 SOAP header 和 SOAP 信封。

在调试时我达到了这段代码

sendSourceAndReceiveToResult(partnerURI, source,
new WebServiceMessageCallback() {

public void doWithMessage(WebServiceMessage message)
throws IOException, TransformerException {

StringSource mefHeaderSource = new StringSource(
header);

SoapHeader soapHeader = ((SoapMessage) message)
.getSoapHeader();

Transformer transformer = TransformerFactory
.newInstance().newTransformer();

transformer.transform(mefHeaderSource,
soapHeader.getResult());

}
}, result);

我怀疑在这里我可以通过放置一些记录器在某处看到输出 XML SOAP 请求,但我不确定我是否正确。我尝试搜索它,但在 google 上可用的所有帖子中,没有任何内容是明确的。

我们正在调试的问题是客户端无法在 SOAP 请求中看到 SOAP header 。

最佳答案

确保使用 Commons Logging 1.1 或更高版本。

要记录所有服务器端消息,只需将 org.springframework.ws.server.MessageTracing 记录器设置为 DEBUGTRACE 级别。在调试级别,仅记录有效负载根元素;在 TRACE 级别上,整个消息内容。如果只想记录发送的消息,请使用 org.springframework.ws.server.MessageTracing.sent 记录器;或 org.springframework.ws.server.MessageTracing.received 记录收到的消息。

在客户端,存在类似的记录器:org.springframework.ws.client.MessageTracing.sent 和 org.springframework.ws.client.MessageTracing.received。

这是一个示例 log4j.properties 配置,记录客户端发送消息的全部内容,以及客户端接收消息的有效负载根元素。在服务器端,有效载荷根被记录为发送和接收的消息:

log4j.rootCategory=INFO, stdout
log4j.logger.org.springframework.ws.client.MessageTracing.sent=TRACE
log4j.logger.org.springframework.ws.client.MessageTracing.received=DEBUG

log4j.logger.org.springframework.ws.server.MessageTracing=DEBUG

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%p [%c{3}] %m%n

关于java - 如何在 Spring 中查看 SOAP 请求的 XML 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35288164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com