我试图获得SOAPMessage对象的原始xml,我正在使用ByteArrayOutputStream类,但是它的可读性一旦存在压缩附件就添加到消息对象中。只接收部分消息写入ByteArrayOutputStream对象
这里是我的代码:
ByteArrayOutputStream out = new ByteArrayOutputStream();
message.writeTo(out);
strMsg = new String(out.toByteArray());
其中,消息是SOAPMessage对象。 问题是,当我将它打印到标准输出或日志或其他输出时,strMsg可能很大并且包含压缩附件的字节数据。在将消息写入ByteArrayOutputStream对象的时刻,有没有办法截断它?我知道,我可以轻松截断strMsg,但我没有看到收集ByteArrayOutputStream中所有数据的理由。
如果数据是压缩的,它不会*有任何丢失的可读性,并且您没有任何业务试图首先将它转换为字符串。不清楚你真正想问什么。 – EJP
@EJP - 我很清楚。他试图在日志中捕获SOAP消息,而不会在有附件时填充大量不可读的东西来填充日志文件。 –
@StephenC因此他需要通过SoapMessage API获取可读的消息片段并记录下来。不要把整个事物转换成一个'ByteArrayOutputStream',然后是一个'String',它并没有开始实现这个目标。 – EJP