2

私はSpringを利用して、Beanオブジェクトのすべてのマーシャリング/アンマーシャリングを行っています(jaxb2Marshaller/WebServiceTemplate経由)。デバッグの目的で、リクエスト/レスポンス XML を吐き出せるようにしたいと考えています。これが可能かどうか誰にもわかりますか?ありがとう。

4

1 に答える 1

1

代替案 A: TCP モニターを使用する

TCP/IP モニターは非常にうまく機能します。

Eclipse を使用している場合、TCP/IP モニター ビューは非常に優れたソリューションです。

TCP モニターを使用して、クライアントの要求をモニターに送信すると、モニターは要求を出力してサーバーに転送します。サーバーからモニターに応答が返されます。モニターのディスプレイに出力した後、モニターは要求をクライアントに送り返します。

代替 B: インターセプターを使用する

エラーのあるすべてのメッセージを吐き出すには、Spring WS の検証サポートを使用する必要があります。

クライアント側で検証を有効にするように構成します。

<bean id="webServiceTemplate" class=
         "org.springframework.ws.client.core.WebServiceTemplate">
    <property name="marshaller" ref="marshaller" />
    <property name="unmarshaller" ref="marshaller" />
    <property name="defaultUri"
        value="http://localhost:8081/ws-demo/account-balance-service" />
    <property name="interceptors">
        <list>
            <ref bean="payloadValidatingInterceptor" />
        </list>
    </property>
</bean>

<bean id="payloadValidatingInterceptor"
          class="org.springframework.ws.client.support
         .interceptor.PayloadValidatingInterceptor">
    <property name="schema"
        value="file:WebContent/WEB-INF/schemas/account-balance-service.xsd" />
    <property name="validateRequest" value="true" />
    <property name="validateResponse" value="true" />
</bean>

ペイロードで何でもできる独自のインターセプターを追加することもできます。クライアント側の検証についてはこちら、サーバー側の検証についてはこちらに詳しく書いています。

于 2010-06-30T18:09:44.263 に答える