2012-08-15 2 views
1

일반적인 POJO 세트 대신 웹 서비스에서 원시 XML 응답을 가져 오려고합니다.Java 웹 서비스 클라이언트에서 원시 XML 응답 받기

WSDL 및 일부 스키마에서 생성 한 (클라이언트의 코드에 액세스 할 수있는) webservice 클라이언트를 사용하고 있습니다. 클라이언트는 RAD 7.5에서 생성되었으며 JAX-WS를 사용한다고 생각합니다. 클라이언트 코드 자체를 살펴 봤지만 클라이언트 코드가 원시 XML을 처리하는지 또는 다른 라이브러리로 전달할 지 확실하지 않습니다.

답변

2

당신은 당신이 단순히 SOAPMessageContext#getMessage()를 사용하여 메시지가 당신이 클라이언트 측에서 SOAP 핸들러 여기에 대해 읽을 수 있습니다 또한

public static String getXmlMessage(SOAPMessage message) throws Exception 
    { 
     ByteArrayOutputStream os = new ByteArrayOutputStream(); 
     message.writeTo(os); 
     final String encoding = (String) message.getProperty(SOAPMessage.CHARACTER_SET_ENCODING); 
     if (encoding == null) 
     { 
      return new String(os.toByteArray()); 
     } 
     else 
     { 
      return new String(os.toByteArray(), encoding);  
     } 
    } 

방법을 사용하여 String으로 메시지를 변환 할 수 있습니다

javax.xml.ws.handler.soap.SOAPHandler<javax.xml.ws.handler.soap.SOAPMessageContext> 

를 사용하여 수행 할 수
Article

+0

그래도이 문자열을 내 기본 응용 프로그램으로 어떻게 반환 할 수 있는지는 잘 모르겠지만. – FrustratedWithFormsDesigner

+0

인쇄 요청/응답 로그에 대해이 프로젝트를 사용하고 있습니다. – Ilya

+0

전역 변수 ArrayList를 만들고 모든 문자열을 여기에 넣을 수 있습니다. – Ilya

1

광범위하게 문서화되어 있지는 않지만 Dispatch 인터페이스를 사용하여 XML과 함께 직접 작동하는 JAXWS 클라이언트를 구현할 수 있습니다. Herehere은 시작하는 데 필요한 몇 가지 도움말입니다.

관련 문제