2008-12-11 4 views
3

당신이 웹 서비스를 호출하기위한 스프링-WS WebserviceTemplate를 사용하고는 SOAP 봉투를 생성하는 것을 방지 할 수 있습니다 미리 생성 된 SOAP 봉투와 WebserviceTemplate을 사용하는 방법? 즉, 메시지가 이미 SOAP-봉투를 포함하고 나는 WebserviceTemplate는 주위 다른 하나를 감싸는 것을 원하지 않는 것이다. :-)봄-WS :

내가 원하는 이유는 ws-security를 ​​사용하는 webservice를 호출하고 ws-security stuff를 WebserviceTemplate에 넣고 싶지는 않지만 메시지를주고 싶습니다. SOAP 봉투에 사전 생성 된 WS 보안 정보가 있습니다. 난 이미 때문에 WS-보안 물건과 다른 비누 - 봉투 주변의 웹 서비스 템플릿 랩 및과 비누 - 봉투가 메시지를 파괴 들어있는 소스와 방법 sendSourceAndReceiveToResult를 호출했습니다.

답변

3

... 난 당신이 미리 생성 된 메시지를 사용하여 WS-보안 의존성을 피하기 위해 노력하고 추측 -그 책.

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate"> 
    <property name="messageFactory" ref="poxMessageFactory" /> 
</bean>  

<bean id="poxMessageFactory" class="org.springframework.ws.pox.dom.DomPoxMessageFactory" /> 
+0

Danke, hat funktioniert! –

0

인터셉터는 당신이하려고하는 일의 종류를 위해 유용하게 사용할 수 있습니다. 당신은 봄-WS과 EndpointInterceptor을 등록하고 원하는대로 응답을 조작 할 수 있습니다 http://static.springframework.org/spring-ws/docs/1.0-m1/api/org/springframework/ws/EndpointInterceptor.html : 여기에 인터셉터 계층 구조를 살펴 보자. 그것으로 확실히 아니다 있지만, 간단한 클라이언트에 대한 적합 할 수 있습니다 - 당신은 이상한 방식으로 WS-보안을 사용하고

+0

네,하지만 내 포인트는 다음과 같습니다 :

이 빈에 WebServiceTemplate에의 MessageFactory을 설정하여 SOAP없이 일반 XML을 사용하는 WebServiceTemplate를 구성 할 수 있습니다 내가 모든 요청 및 응답을 조작하고 싶지 않아! Webservice-Template이 어떤 일을하는 것을 피하려면 어떻게해야합니까? 내 문제는 기존 Soap-Envelope 주위에 다른 Soap-Envelope를 래핑하는 것입니다. –

+0

그럴 수 없습니다. webservice 템플릿은 SOAP 중심입니다. SOAP 응답을 비누 봉투로 감싸고 싶다고 가정합니다. 하지만 귀하의 경우에는 이미 비누 봉투에 귀하의 답변을 가지고있는 것 같습니다. – neesh