3

1つのリクエストと1つのレスポンスを定義するWSDLに基づいてWSを作成しようとしています。着信要求は、SOAPメッセージで定義されたSOAPActionに応じてエンドポイントにマップする必要があります。これを実現するために、 Springのドキュメントで説明されているように、servlet.xml構成ファイルで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を拡張し、リクエストを処理できるはずです。

問題は、(SoapUIを使用して)リクエストを送信しようとすると、ログに次のエラーが表示されることです。

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

私は以前にPayloadRootQNameEndpointMappingを使用して大成功を収めましたが、これを機能させることはできません。

どんな助けでも大歓迎です。

よろしく。

4

2 に答える 2

0

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

于 2009-06-10T07:44:53.690 に答える
0

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

例 SOAPAction=http://myCompany/MyService/MyRequest/mySoapActionOne

現在、404 応答を受信して​​いるため、使用しているエンドポイントのタイプに違いはありません。リクエストはどのエンドポイントにも到達していません。

于 2010-09-29T14:02:39.083 に答える