2014-11-19 3 views
1

Мы пытаемся преобразовать SoapMessage в значение String. В нашем коде мы записываем SoapMessage в ByteArrayOutputStream. Но с ByteArrayOutputStream, есть много вопросов, как вопрос утечки памяти и производительности вопросыSpring Web service SoapMessage.writeTo (OutputStream o)

Здесь Вы можете найти наш код:

MessageContext messageContext; 
SoapMessage requestSoapMessage = (SoapMessage)messageContext.getRequest(); 
SoapMessage responseSoapMessage = (SoapMessage)messageContext.getResponse(); 

//Getting request 
ByteArrayOutputStream baos_req = new ByteArrayOutputStream(); 
requestSoapMessage.WriteTo(baos_req); 
String soapReqMsg = baos_req.toString(); 

//Getting response 
ByteArrayOutputStream baos_resp = new ByteArrayOutputStream(); 
responseSoapMessage.WriteTo(baos_resp); 
String soapRespMsg = baos_resp.toString(); 

Пожалуйста, любой один наставит меня, Есть ли способ получения запроса Soap и ответ в String без использования OutputStream.

Заранее благодарен !!!!

ответ

3

Нет другого способа, кроме использования ByteArrayOutputStream. На самом деле, это тот же метод, который я использую сам Spring-WS. Хотя я бы рекомендовал использовать кодировку UTF-8:

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
    message.writeTo(bos); 
    return bos.toString("UTF-8"); 

Я не уверен, что вы имеете в виду с «утечкой памяти и проблемами с производительностью», я не в курсе, что BAOS имеет любую.

Смежные вопросы