@InInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingInInterceptor" )
@OutInterceptors(interceptors = "org.apache.cxf.interceptor.LoggingOutInterceptor")
public class SKTWeb implements SKTWebService {
// method logic goes here
}
嗨,在CXF方法实现中添加这两行之后。 我可以在tomcat服务器控制台
下获得SOAP请求和响应的鞭子查看Tomcat控制台下打印的SOAP请求实例
INFO: Inbound Message
----------------------------
ID: 1
Address: /Sktweb-33.0/services/SKTWeb
Encoding: UTF-8
Content-Type: text/xml; charset=UTF-8
Headers: {cache-control=[no-cache], content-type=[text/xml; charset=UTF-8], connection=[keep-alive], host=[local
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns4:strategy xmlns:ns
有人可以告诉我如何在我的日志文件(Log4j)中找到它
目前这是我的log4j.properties文件
log4j.rootCategory=INFO, A1
# A1 is a DailyRollingFileAppender
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.file=/Haieeee.log
log4j.appender.A1.datePattern='.'yyyy-MM-dd
log4j.appender.A1.append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-22d{dd/MMM/yyyy HH:mm:ss} - %m%n
我还在Web应用程序中有META-INF \ cxf \ org \ apache \ cxf \ Logger Log4jLogger.class。 我也保持
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
</cxf:bus>
在endpoints.xml文件中
请帮助
答案 0 :(得分:2)
看起来有点混乱。您需要已组装的应用程序具有可定位文件META-INF/cxf/org.apache.cxf.Logger
(是的,这些是点!它不是.java或.class文件)并且它应该具有以下内容:
org.apache.cxf.common.logging.Log4jLogger
我在我的代码中使用了上述内容,它就像一个魅力。 (我不会将它与消息记录功能一起使用;根据我的口味部署时流量过多......)
答案 1 :(得分:0)
基本上,您希望CXF选择您的属性文件,然后它使用此属性文件而不是CXF。 我在我的CXF应用程序中使用spring配置。如果您没有使用任何Spring配置,那么您创建一个新配置并在启动时使用spring上下文侦听器加载它,然后您可以在XML文件中添加以下代码。
<bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>file:fullpath/filename.properties</value>
</list>
</property>
</bean>
您还可以在classpath:filename.properties
中拥有<list> </list>
。在Spring框架中实现的日志记录将用于记录所有请求和响应。您还可以在应用程序中使用相同的日志记录实现。
答案 2 :(得分:0)
总是使用拦截器...添加slf4j-log4j12-1.6.1.jar,slf4j-api-1.6.1.jar和commons-logging-1.1.1.jar。将以下代码粘贴到cxf.xml中...
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor" id="loggingInInterceptor" />
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" id="logOutInterceptor" />
<cxf:bus>
<cxf:inInterceptors>
<ref bean="loggingInInterceptor" />
</cxf:inInterceptors>
<cxf:outInterceptors>
<ref bean="logOutInterceptor" />
</cxf:outInterceptors>
</cxf:bus>