Logging Cxf SOAP日志记录。不同文件中的不同服务
我的问题是我必须使用不同的服务,并且: 1.在我的beans.xml中有这个Logging Cxf SOAP日志记录。不同文件中的不同服务,logging,soap,cxf,Logging,Soap,Cxf,我的问题是我必须使用不同的服务,并且: 1.在我的beans.xml中有这个 <cxf:bus > <cxf:features> <cxf:logging/> </cxf:features> </cxf:bus> 在log4.xml中: <logger name="org.apache.cxf" additivity="false"> <
<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>
我可以从我的一个服务客户机上看到我的控制台上只有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>
以及不喜欢这样的服务:
<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日志。
谢谢你的建议,很抱歉我的英语=)哦,好的,昨晚我收到了! 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" />
感谢您的关注=)