我正在使用Spring的SoapEnvelopeLoggingInterceptor
记录SOAP请求/响应。
一些请求/响应包含base64Binary
字段,这些字段在日志文件中占用大量空间,我不需要出于我的目的对其进行记录。
深入研究SoapEnvelopeLoggingInterceptor
的代码,我可以看到使用的java.xml.transform.Transformer
是这样创建的:
Transformer transformer = createTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.setOutputProperty(OutputKeys.INDENT, "no");
return transformer;
我可以在
Transformer
上设置一些属性,以防止其打印出base64Binary
字段的内容吗?还是我可以配置或覆盖以防止其被记录的其他任何内容? 最佳答案
我不了解Transformer,但是我认为Base64字段将具有大致相等数量的大写和小写字母。普通文本将倾向于具有更多的小写字母或全部为大写字母。您也许可以通过这种方式确定差异。
另外,还有一些标点符号从未出现在Base64中。看到其中任何一个都会告诉您该字段不是Base64。
关于java - 记录SOAP消息时如何忽略base64binary字段?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7483344/