2009-06-10 3 views
2

1つのリクエストと1つのレスポンスを定義するWSDLに基づいてWSを作成しようとしています。着信要求は、SOAPメッセージで定義されているSOAPActionに応じて、エンドポイントにマップする必要があります。これを達成するために、私はservlet.xml設定ファイルでSoapActionEndpointMappingを使用して、Spring documentationで説明されているようにマッピングを定義しようとしています。Spring-wsでのSoapActionEndpointMappingの使用

<bean id="endpointMapping" class="org.springframework.ws.soap.server.endpoint.mapping.SoapActionEndpointMapping"> 
    <property name="mappings"> 
     <props> 
      <prop key="http://myCompany/MyService/MyRequest/mySoapActionOne">myFirstEndpoint</prop> 
      <prop key="http://myCompany/MyService/MyRequest/mySoapActionTwo">mySecondEndpoint</prop> 
     </props> 
    </property> 

私のエンドポイントがAbstractMarshallingPayloadEndpointを拡張し、要求を処理することができるはずです。

WARN [EndpointNotFound] No endpoint mapping found for [SaajSoapMessage {http://schemas.mycompany/MyService}MyRequest] 

私は以前大きな成功を収めてPayloadRootQNameEndpointMappingを使用しますができない、この仕事をしなければならない:

問題は、私は(SOAPUIで)リクエストを送信しようとすると、私はログに次のエラーを取得するということです。

何か助けていただければ幸いです。

よろしくお願いいたします。

+0

これはうまくいくのですか? – skaffman

答えて

0

ハンドラアダプタBeanも定義されていますか? MarshallingPayloadEndpointを使用するには、MarshallingPayloadEndpointを使用する必要があります。そのため、Springはマーシャリングの実行方法を知っています。このアダプタはMarshallingEndpointHandlerAdapterなどと呼ばれます。

+0

私はMarshallingPayloadEndpointを定義していません。私が行ったのは、AbstractMarshallingPayloadEndpointのmarshaller/unmarshallerプロパティを設定することでした。これはPayloadRootQNameEndpointMappingで動作しますが、MarshallingEndpointHandlerAdapterを調べます。 ありがとう – maskefjes

0

SOAPクライアント(SOAPUI)では、マッピングに使用するSOAPアクションをspringに提供するために、SOAPActionヘッダーをリクエストに追加する必要があります。

など。 SOAPAction = http:// myCompany/MyService/MyRequest/mySoapActionOne

現在、404応答を受け取っているため、使用しているエンドポイントのタイプを変更してはいけません。任意のエンドポイントに向かう途中。