WebService CXF --- 创建基础的示例
1、开发环境:
???????????? cxf-2.3.3.jar
???????????? MyEclipse6.6
???????????? JDK1.5
???????????? Tomcat-5.5.27
2、? 理论联系实际,现用一个 Demo来说明事更加直观。
?????? 新建一个WebService Project,导入cxf常用.jar包。
?????? 第一步:新建一个webservice接口,?接口IHelloService.java
?????
package demo.cxf.server;import javax.jws.WebParam;import javax.jws.WebService;@WebService//通过注解@WebService申明为webservice接口 public interface IHelloService { //@WebParam给参数命名,提高可代码可读性 public String sayHello(@WebParam(name="text")String text);}
?
????????????????
??第二步,实现WebService接口? 实现类HelloServiceImpl.java
??
package demo.cxf.server;import javax.jws.WebService;@WebService(endpointInterface="demo.cxf.server.IHelloService",serviceName="helloService")public class IHelloServiceImpl implements IHelloService { public String sayHello(String text) { return "Hello ".concat(text); }}
???
?第三步,创建服务端
?
public class DeployServer { private DeployServer(){ IHelloService helloService = new HelloServiceImpl(); //创建WebService服务工厂 JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean(); //注册WebService接口 factory.setServiceClass(IHelloService.class); //发布接口 factory.setAddress("http://localhost:9000/HelloService"); factory.setServiceBean(helloService); //创建WebService factory.create(); }; public static void main(String[] args) throws InterruptedException{ //启动服务端 new DeployServer(); System.out.println("Server ready..."); //休眠一分钟,便于测试 Thread.sleep(1000*60); System.out.println("Server exit..."); System.exit(0); } }
?
? 第四步,创建客户端
??
??
public class Client { private Client(){}; public static void main(String[] args){ //创建WebService客户端代理工厂 JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); //注册WebService接口 factory.setServiceClass(IHelloService.class); //设置WebService地址 factory.setAddress("http://localhost:8080/HelloService"); IHelloService iHelloService = (IHelloService)factory.create(); System.out.println("invoke webservice..."); System.out.println("message context is:"+iHelloService.sayHi(" Josen")); System.exit(0); } }
?
??? 现在是万事俱备,只欠测试了
??? 首先,运行服务端程序
??? 其次,打开浏览器,在地址栏中输入http://localhost:8080/HelloService?wsdl(因为cxf自带了一个jetty服务器),查看接口是否发布成功,如里浏览器页面显示一些XML,证明接口发布成功。
?? 最后,运行客户端程序,就可以看到效果了。?
?