2012-09-06 3 views
0

내 문제는 내가 다른 서비스와 함께 작동 할 수 있습니다 : 1. 내 beans.xml 환경Cxf SOAP 로깅. 다른 파일에서 다른 서비스

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

내 모든 서비스 고객 중 하나의 콘솔 전용 비누를 볼 수 있습니다. 그리고 왜 '나는 그 이유를 이해하지 못합니다.

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

내가 다른 파일에서 다른 서비스에서 비누 로그를 기록 할 올바르게 다음과 같이 선언 로그 쓰기 해당 서비스를 추가 할 수 있습니다. 내 영어에 대한 조언에 감사드립니다. =)

답변

1

Oookay, 어젯밤에 알았어요! cxf는 자신의 인터셉터를 무시하기 때문에 두 번째 유형의 클라이언트에 대한 로그를 작성하지 않습니다. 해결 방법은 다음과 같습니다 귀하의 관심

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

감사합니다 =)