2013-09-30 1 views
0

Apache Tomcat에서 실행되는 웹 서비스 클라이언트를 작성하고 있습니다. 요청/응답을위한 XML 페이로드를 얻어야 만 로그인 할 수 있습니다.Metro 웹 서비스 프레임 워크를 사용하여 원시 XML 페이로드를 가져올 수 있습니까?

바이트를 stdOut으로 덤프하는 것은 내가 원하는 것이 아닙니다. Java 코드에서 바이트로 가져 와서 원하는대로 로깅 할 수 있습니다.

이렇게 할 방법이 있습니까?

답변

1

예, 있습니다. JAX-WS 핸들러의 주요 목적 중 하나이다. XML 페이로드를 원시 바이트로 가져 오지는 않지만 형식화됩니다. 그러나 원하는 경우 원시 바이트로 다시 변환하는 것이 쉽습니다. 예 :

JAXBContext jaxbContext = JAXBContext.newInstance(ObjectFactory.class); 
Object payload = msg.getPayload(jaxbContext); 

참고 : 당신은이 전화를 사용할 수 있습니다

public class MyCustomHandler implements SOAPHandler<SOAPMessageContext> { 
    @Override 
    public boolean handleMessage(SOAPMessageContext context) { 
     SOAPMessage msg = context.getMessage(); 
     SOAPEnvelope env = msg.getSOAPPart().getEnvelope(); 
     SOAPBody body = env.getBody(); 
     // now when you have SOAP body you can do whatever you want... 
     return true; 
    } 
} 

+0

감사 Miljen, 내가 테스트거야, 그리고 여기에 다시 게시하십시오. 나는 찾는다. –

+0

@JesseBarnum 여러분 환영합니다. 이것이 당신의 문제를 해결할 수 있기를 바랍니다. –

관련 문제