1

My goal is to set up a generic web service. By "generic" in this context I mean that, one should be able to run an arbitrary sequence of tools on the input (let's say a file). These tools are compiled programms installed on the server.

My idea was to specify each tool in a central WSDL File. This WSDL File is parsed and for each tool, included in the WSDL file, a separate Service Class is created, which executes the respective tool via apache commons exec.

Is it then possible to manually create a SOAP Message in which the sequence of tools, one wants to perform on the input, is specified ? This SOAP Message should then be parsed and the respective Service Classes should be started.

I have to say I'm completely new to Web Service programming and I'm gratefuly for any advice. The above is just an idea and I'm open for any better advice ;)

greetings,

4

1 に答える 1

0

SOAPインターフェイスを実装することにより、メッセージを手動で (プログラムで)作成、変更できSOAPHandler<SOAPMessageContext>ます。次に、このメソッドをオーバーライドする必要があります。

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

このメソッドに渡されたオブジェクトSOAPからメッセージを取得します。SOAPMessageContext

SOAPMessage soapMsg = context.getMessage();

あなたのメッセージから、、、を得ることがSOAP BodyできSOAP EnvelopeますSOAP Header。これにより、好きなだけ要素を追加できます。XSDただし、手動で追加するすべての要素は、WSDLファイルの要素と一致する必要があることを忘れないでください。

このハンドラーをJAX-WSコンテキストに宣言するにはSpring、次のように構成できます。

  <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>

JAX-WSエンドポイントの設定方法の詳細については、こちらを参照してください。ハンドラーに関する情報もここにあります

これが最初に役立つことを願っています。

于 2012-09-03T21:52:42.823 に答える