使用CXF api发布服务 package server; import javax.xml.ws.Endpoint; import org.apache.cxf.interceptor.LoggingInInterceptor; import org.apache.cxf.jaxws.EndpointImpl; public class Server_TextCXFAPI { Server_TextCXFAPI(){ MyHelloWorldImpl implementor = new MyHelloWorldImpl(); String address = "http://localhost:9000/myHelloWorld"; Endpoint endpoint = Endpoint.publish(address, implementor); //jaxws API 转到 cxf API 添加日志拦截器 EndpointImpl jaxwsEndpointImpl = (EndpointImpl) endpoint; org.apache.cxf.endpoint.Server server = jaxwsEndpointImpl.getServer(); org.apache.cxf.endpoint.Endpoint cxfEndpoint = server.getEndpoint(); LoggingInInterceptor logging = new LoggingInInterceptor(); cxfEndpoint.getInInterceptors().add(logging); } public static void main(String[] args) throws InterruptedException { new Server_TextCXFAPI(); System.out.println("Server ready..."); Thread.sleep(5*60*1000); System.out.println("Server exiting"); System.exit(0); } } 使用CXF api进行客户端调用 package client; import java.net.MalformedURLException; import java.net.URL; import javax.xml.namespace.QName; import javax.xml.ws.Service; import org.apache.cxf.interceptor.LoggingOutInterceptor; import server.MyHelloWorld; public class Client3_TextCXFAPI { public static void main(String[] args) { URL wsdlURL = null; try { wsdlURL = new URL("http://localhost:9000/myHelloWorld?wsdl"); } catch (MalformedURLException e) { e.printStackTrace(); } final QName SERVICE_NAME = new QName("http://server/", "FHDHelloWorld"); Service service = Service.create(wsdlURL, SERVICE_NAME); MyHelloWorld hw = service.getPort(MyHelloWorld.class); //jaxws API 转到 cxf API 添加日志拦截器 org.apache.cxf.endpoint.Client client =org.apache.cxf.frontend.ClientProxy.getClient(hw); org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint(); LoggingOutInterceptor logging = new LoggingOutInterceptor(); cxfEndpoint.getOutInterceptors().add(logging); hw.sayHi("fuhaidong"); System.out.println("client: fuhaidong"); } }