客户端:
用cxf 框架提供的类调用服务.. (需要依赖一个接口,通过wsimport 生成的代码当中获取...)
package cn.itcast.cxf.client;import org.apache.cxf.frontend.ClientProxyFactoryBean;import cn.itcast.cxf.server.CxfWebServicePortType;/** * * 使用cxf 提供的类 ClientProxyFactoryBean 调用 webservice 服务 * * 使用此类调用需要依赖一个接口,这个接口可以通过wsimport 生成.... * * 只需要留下CxfWebServicePortType.java文件,其他java和class文件都删掉 * * @ 作者 zhuwu@itcast.cn * */public class CxfClientInvoke { /** * @param args */ public static void main(String[] args) { //创建调用webservice 服务的类... ClientProxyFactoryBean bean=new ClientProxyFactoryBean(); bean.setAddress("http://192.168.9.100:8080/server");//设置访问地址... bean.setServiceClass(CxfWebServicePortType.class);//设置服务的接口... //创建接口类型... CxfWebServicePortType cxfWebServicePortType=(CxfWebServicePortType) bean.create(); cxfWebServicePortType.sayHello(); }}
导出来的接口文件
package cn.itcast.cxf.server;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.bind.annotation.XmlSeeAlso;import javax.xml.ws.RequestWrapper;import javax.xml.ws.ResponseWrapper;/** * This class was generated by the JAX-WS RI. * JAX-WS RI 2.1.1 in JDK 6 * Generated source version: 2.1 * */@WebService(name = "CxfWebServicePortType", targetNamespace = "http://server.cxf.itcast.cn/")@XmlSeeAlso({ })public interface CxfWebServicePortType { /** * */ @WebMethod @RequestWrapper(localName = "sayHello", targetNamespace = "http://server.cxf.itcast.cn/", className = "cn.itcast.cxf.server.SayHello") @ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "http://server.cxf.itcast.cn/", className = "cn.itcast.cxf.server.SayHelloResponse") public void sayHello();}