Nik*_*wal 3 java model-view-controller spring soap web-services
我是 Spring SOAP 请求的新手。我想查看 SOAP 请求的最终 XML 输出,其中包括 SOAP 标头和 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);
Run Code Online (Sandbox Code Playgroud)
我怀疑在这里我可以通过放置一些记录器在某处看到输出 XML SOAP 请求,但我不确定我是否正确。我尝试搜索它,但在谷歌上提供的所有帖子中没有任何内容是明确的。
我们正在调试的问题是客户端无法看到 SOAP 请求中的 SOAP 标头。
小智 5
确保使用 Commons Logging 版本 1.1 或更高版本。
要记录所有服务器端消息,只需将 org.springframework.ws.server.MessageTracing 记录器设置为DEBUG或TRACE级别即可。在调试级别,仅记录有效负载根元素;在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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14634 次 |
| 最近记录: |