import org.apache.cxf.endpoint.Client;import org.apache.cxf.frontend.ClientProxy;import org.apache.cxf.interceptor.LoggingInInterceptor;import org.apache.cxf.interceptor.LoggingOutInterceptor;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import cn.demo.domain.User;import cn.demo.service.UserService;/** * 调用服务端接口 * @author lenovo * */public class ClientDemo { public static void main(String[] args) { //1.创建工厂对象 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); //2.设置参数 //2.1 设置访问路径 factory.setAddress("http://localhost:8080/services/userService"); //2.2 设置接口 factory.setServiceClass(UserService.class); //3.创建接口的代理类对象 UserService userService = (UserService)factory.create(); //设置日志拦截器 Client client = ClientProxy.getClient(userService); //输入拦截器(响应) client.getInInterceptors().add(new LoggingInInterceptor()); //输出拦截器(请求) client.getOutInterceptors().add(new LoggingOutInterceptor()); userService.saveUser(new User(1,"name","sex")); } }
### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target=System.errlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file mylog.log ###log4j.appender.file=org.apache.log4j.FileAppenderlog4j.appender.file.File=c:/mylog.loglog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=info, stdout
org.apache.cxf cxf-rt-frontend-jaxws 3.0.1 org.apache.cxf cxf-rt-transports-http-jetty 3.0.1 org.slf4j slf4j-log4j12 1.6.6