0

私の問題は、さまざまなサービスを使用する必要があることです。1. これを beans.xml に含める

<cxf:bus >
        <cxf:features>
            <cxf:logging/>
        </cxf:features>

    </cxf:bus>

そしてこれはlog4.xmlにあります:

 <logger name="org.apache.cxf" additivity="false">
    <level value="info" />
    <appender-ref ref="sessionSoapFile" />
    <appender-ref ref="console" />
</logger>

すべてのサービス クライアントの 1 つからコンソールのみの SOAP を確認できます。そして、私はその理由を理解できません。次のように正しく宣言されたログを書き込むサービスを追加できます。

<jaxws:client id="sessionService" address="${session-storage.url}/services/SessionService?wsdl" serviceClass="ru.vtsft.exchange.session.service.SessionService">
    <jaxws:dataBinding>
        <bean class="org.apache.cxf.aegis.databinding.AegisDatabinding" />
    </jaxws:dataBinding>
</jaxws:client>

そして、これを好まないサービス:

<bean id="agencyClient" class="comtech.swc.service.AgencyService"
        factory-bean="agencyFactory" factory-method="create" />

    <bean id="agencyFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="comtech.swc.service.AgencyService" />
        <property name="address" value="${swc.url}/agency" />
        <property name="outInterceptors">
            <list>
                <bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
                <ref bean="authorizationOutInterceptor" />
                <bean class="ru.vtsft.exchange.cxfinterceptors.DynamicIdOutInterceptor" />
            </list>
        </property>
    </bean>

その結果、さまざまなサービスからの SOAP ログをさまざまなファイルに書き込みたいと考えています。アドバイスに感謝し、私の英語で申し訳ありません=)

4

1 に答える 1

1

オーケイ、昨夜私はそれを手に入れました!cxf は、自分のインターセプターをオーバーライドするため、2 番目のタイプのクライアントのログを書き込みません。解決策は次のとおりです。

<bean id="exchangeFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
        <property name="serviceClass" value="comtech.swc.service.ExchangeService" />
        <property name="address" value="${swc.url}/exchange" />
        <property name="inInterceptors">
            <list>
                <ref bean="loggingInInterceptor" /> <!---- Here -->
            </list>
        </property>
        <property name="outInterceptors">
            <list>
                <ref bean="loggingOutInterceptor" /> <!---- And here -->
                <bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor" />
                <ref bean="authorizationOutInterceptor" />
                <bean class="ru.vtsft.exchange.cxfinterceptors.DynamicIdOutInterceptor" />
            </list>
        </property>
    </bean>

 <!-- Logging interceptors -->
 <bean id="loggingInInterceptor" class="org.apache.cxf.interceptor.LoggingInInterceptor" />
 <bean id="loggingOutInterceptor" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />

ご清聴ありがとうございました =)

于 2012-09-07T05:08:47.320 に答える