2009-10-20 2 views
6

이것은 Apache Axis를 사용하는 웹 서비스에 대해 어느 정도 전문 지식을 가진 사람이라면 쉽게 알 수 있습니다.Axis 1.4 wsdl2java 생성 클라이언트를 사용하는 동안 SOAP 메시지를받는 방법

Axis 1.4에서 wsdl2java에 의해 생성 된 웹 서비스 클라이언트가 있습니다. 실제 SOAP 메시지 자체에 액세스해야하고 Axis에 의해 생성 된 클라이언트 측 Java 클래스와의 비교를 수행해야하는 단위 테스트를 작성하고 있습니다. (묻지 않음)

서비스의 응답에서 실제 SOAP 메시지를 검색하려면 어떻게합니까?

내가 주위에서 검색 할 때 수집 할 수있는 것은 MessageContext를 얻어야한다는 것입니다. 나는이 라인들을 따라 뭔가를 시도했다 ...

MessageContext mc = MessageContext.getCurrentContext(); String message = mc.getCurrentMessage(). getSOAPPartAsString();

그러나 MC가이 경우에 널 (null)입니다 ....

어떤 도움에 감사드립니다!

답변

5

이것이 완료된 방법입니다. _call 오브젝트 아래 줄 호출 충전

http://users.skynet.be/pascalbotte/rcx-ws-doc/jaxrpchandler.htm

+1

답변을 확대 해주세요. 미래의 링크 썩음 (예, 6 년) 외에도, 링크의 페이지에는 많은 코드가 있으며 "완료된 방법"이 즉시 명백하지 않습니다. 관련 코드 스 니펫 (코드의 전체 벽이 아님)에 대한 간략한 요약은 매우 유용합니다! – ADTC

+1

그래, 바로 잡을거야! – rshepherd

3

그것을 제공한다.

String request=_call.getMessageContext().getRequestMessage() .getSOAPPart().getEnvelope().toString();

응답을 당신이 알고있는

하나 아래 _call.getMessageContext().getResponseMessage() .getSOAPPart().getEnvelope().toString()

Callorg.apache.axis.client.Call이다 사용합니다.