我試圖獲得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