2010-11-25 1 views
0

프로젝트에서 수년간 존재 해 왔으며 수정할 수없는 웹 서비스를 호출해야합니다. 이 웹 서비스에는 버그가 포함되어 있습니다. SOAP 요청에 대한 응답을 보낼 때 응답에 항상 < S : Envelope > 및 < S : Body > 요소가 포함되지는 않습니다.파싱되기 전에 JAX-WS 클라이언트에서 들어오는 웹 서비스 응답을 어떻게 수정할 수 있습니까?

JAX-WS SOAP 파서가 구문 분석하기 전에 어떻게 메시지를 가로 채고 누락 된 부분을 삽입 할 수 있습니까?

답변

0

나는이 질문이 아직 답변없이 열려 있다는 것을 알았으므로, 문제가 어떻게 해결되었는지에 대해 약간의 통찰력을 제공 할 것입니다.

그렇듯이 JAX-WS는 이런 종류의 작업을 지원하지 않습니다. 구현의 세부 사항을 조사하고 거기에 후크를 추가하는 것이 가능할 수도 있지만 솔루션은 더 이상 다른 웹 서비스 컨테이너 구현으로 이식 할 수 없습니다.

최종 해결책은 Commons HTTP Client로 전환하여 메시지를 보내고 응답을받는 것입니다. 메시지 자체는 일반 JAXB를 사용하여 생성되고 파싱되었습니다. SOAP 헤더가 수동으로 추가 및 제거되었습니다.

관련 문제