2012-09-03 2 views
1

제 목표는 일반적인 웹 서비스를 설정하는 것입니다. 이 문맥에서 "generic"은 입력에 대해 임의의 순서로 도구를 실행할 수 있어야한다는 것을 의미합니다 (파일이라고합시다). 이 도구는 서버에 설치된 컴파일 된 프로그램입니다.SOAP 메시지를 수동으로 만드시겠습니까?

내 아이디어는 각 도구를 WSDL 파일에 지정하는 것이 었습니다. 이 WSDL 파일이 구문 분석되고 WSDL 파일에 포함 된 각 도구에 대해 별도의 Service Class이 생성되어 apache commons exec를 통해 해당 도구가 실행됩니다.

SOAP Message을 수동으로 생성 할 수 있습니까? 입력에서 수행하려는 도구의 순서가 지정되어 있습니까? 그러면이 SOAP Message을 구문 분석하고 각각 Service Classes을 시작해야합니다.

나는 완전히 새로운 프로그래밍이고, 조언을 구하기 위해 gratefuly인데, 나는 Web Service이다. 위의 그냥 생각 나는 더 나은 조언을 열려있어, 당신은 SOAPHandler<SOAPMessageContext> 인터페이스를 구현하여) 생성, 수동 (프로그래밍 SOAP 메시지를 수정할 수 있습니다)

인사,

답변

0

합니다. 그럼 당신은이 메소드를 오버라이드 (override) 할 필요가 :

public boolean handleMessage(SOAPMessageContext context) { 
    //do anything you like with a message  
} 

당신은이 메서드에 전달 SOAPMessageContext 개체에서 SOAP 메시지가 :

SOAPMessage soapMsg = context.getMessage(); 

를 메시지에서 당신이 SOAP Body, SOAP Envelope, SOAP Header를 얻을 수 있습니다. 이렇게하면 원하는만큼 요소를 추가 할 수 있습니다. 그러나 수동으로 추가하는 모든 요소는 WSDL 파일의 XSD과 일치해야합니다. 당신이 here을 찾을 수 있습니다 JAX-WS 엔드 포인트를 구성하는 방법에 대한

<jaxws:endpoint id="HandlerExample" 
        implementor="your.service.ImplemetationClass" 
        address="http://localhost:8080/Example/services/Example"> 
    <jaxws:handlers> 
     <bean class="your.Handler" /> 
    </jaxws:handlers> 
    </jaws:endpoint> 

더 많은 정보 :

은 당신이 할 수있는 Spring 구성은 다음과 같이 JAX-WS 맥락이 핸들러를 선언합니다. 또한 핸들러에 대한 정보는 here입니다.

희망이 있으면 도움이 될 것입니다.

관련 문제