2014-11-19 18 views
1

SoapMessage를 String 값으로 변환하려고합니다. 코드에서 ByteArrayOutputStream에 SoapMessage를 쓰고 있습니다. 어떤 사람이 나를 인도 해주십시오, 비누 요청 및 응답을 얻기의 어떤 방법 스프링 웹 서비스 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(); 

있습니까

:하지만있는 ByteArrayOutputStream로, 메모리 누수 문제 및 성능 같은 문제의 많은 우리의 코드를 검색

를 발행있다 OutputStream을 사용하지 않고 String에서.

미리 감사드립니다 !!!!

답변

3

ByteArrayOutputStream을 사용하는 것 외에 다른 방법은 없습니다. 사실, 이것은 내가 Spring-WS에서 사용하는 것과 같은 기술이다. 나는 UTF-8 문자 인코딩을 사용하는 것이 좋습니다 것입니다 비록 :

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

을 당신이 "메모리 누수 및 성능 문제"로 무슨 뜻인지 확실하지 않다, 나는 BAOS 어떤을 가지고 있음을 인식하지입니다.