理论联系实际,单单只讲理论那就成了纸上谈兵,用一个HelloWorld Demo可来说明事更加直观。那下面咱们就开始进行讲解: 首先到apache官方网下载apache-cxf-2.2.2,地址:http://cxf.apache.org/ 新建一个Java Project,导入cxf常用.jar包 Java代码 1.commons-logging-1.1.1.jar 2.geronimo-activation_1.1_spec-1.0.2.jar (or Sun's Activation jar) 3.geronimo-annotation_1.0_spec-1.1.1.jar (JSR 250) 4.geronimo-javamail_1.4_spec-1.6.jar (or Sun's JavaMail jar) 5.geronimo-servlet_2.5_spec-1.2.jar (or Sun's Servlet jar) 6.geronimo-ws-Metadata_2.0_spec-1.1.2.jar (JSR 181) 7.geronimo-jaxws_2.1_spec-1.0.jar (or Sun's jaxws-api-2.1.jar) 8.geronimo-stax-api_1.0_spec-1.0.1.jar (or other stax-api jar) 9.jaxb-api-2.1.jar 10.jaxb-impl-2.1.12.jar 11.jetty-6.1.21.jar 12.jetty-util-6.1.21.jar 13.neethi-2.0.4.jar 14.saaj-api-1.3.jar 15.saaj-impl-1.3.2.jar 16.wsdl4j-1.6.2.jar 17.wstx-asl-3.2.8.jar 18.XmlSchema-1.4.5.jar 19.xml-resolver-1.2.jar 20.cxf-2.2.2.jar commons-logging-1.1.1.jar geronimo-activation_1.1_spec-1.0.2.jar (or Sun's Activation jar) geronimo-annotation_1.0_spec-1.1.1.jar (JSR 250) geronimo-javamail_1.4_spec-1.6.jar (or Sun's JavaMail jar) geronimo-servlet_2.5_spec-1.2.jar (or Sun's Servlet jar) geronimo-ws-Metadata_2.0_spec-1.1.2.jar (JSR 181) geronimo-jaxws_2.1_spec-1.0.jar (or Sun's jaxws-api-2.1.jar) geronimo-stax-api_1.0_spec-1.0.1.jar (or other stax-api jar) jaxb-api-2.1.jar jaxb-impl-2.1.12.jar jetty-6.1.21.jar jetty-util-6.1.21.jar neethi-2.0.4.jar saaj-api-1.3.jar saaj-impl-1.3.2.jar wsdl4j-1.6.2.jar wstx-asl-3.2.8.jar XmlSchema-1.4.5.jar xml-resolver-1.2.jar cxf-2.2.2.jar 接下就是HelloWorld Demo开发了 第一步:新建一个webservice接口 Java代码 1.@WebService 2.public interface IHelloWorld { 3. //@WebParam给参数命名,提高可代码可读性。此项可选 4.blic String sayHi(@WebParam(name="text") String text); 5.} @WebService public interface IHelloWorld { //@WebParam给参数命名,提高可代码可读性。此项可选 public String sayHi(@WebParam(name="text") String text); } 通过注解@WebService申明为webservice接口 第二步,实现WebService接口 Java代码 1. @WebService 2. public class HelloWorldImpl implements IHelloWorld { 3. 4.public String sayHi(String name) { 5. System.out.println("sayHello is called by " + name); 6. return "Hello " + name; 7.} 8. 9. } @WebService public class HelloWorldImpl implements IHelloWorld { public String sayHi(String name) { System.out.println("sayHello is called by " + name); return "Hello " + name; } } 第三步,创建服务端 Java代码 1. public class Server { 2. 3.private Server(){ 4. IHelloWorld helloWorld = new HelloWorldImpl(); 5. //创建WebService服务工厂 6. JaxWsServerfactorybean factory = new JaxWsServerfactorybean(); 7. //注册WebService接口 8. factory.setServiceClass(IHelloWorld.class); 9. //发布接口 10. factory.setAddress("http://localhost:9000/HelloWorld"); 11. factory.setServiceBean(helloWorld); 12. //创建WebService 13. factory.create(); 14.}; 15. 16.public static void main(String[] args) throws InterruptedException{ 17. //启动服务端 18. new Server(); 19. System.out.println("Server ready..."); 20. //休眠一分钟,便于测试 21. Thread.sleep(1000*60); 22. System.out.println("Server exit..."); 23. System.exit(0); 24.} 25. } public class Server { private Server(){ IHelloWorld helloWorld = new HelloWorldImpl(); //创建WebService服务工厂 JaxWsServerfactorybean factory = new JaxWsServerfactorybean(); //注册WebService接口 factory.setServiceClass(IHelloWorld.class); //发布接口 factory.setAddress("http://localhost:9000/HelloWorld"); factory.setServiceBean(helloWorld); //创建WebService factory.create(); }; public static void main(String[] args) throws InterruptedException{ //启动服务端 new Server(); System.out.println("Server ready..."); //休眠一分钟,便于测试 Thread.sleep(1000*60); System.out.println("Server exit..."); System.exit(0); } } 第四步,创建客户端 Java代码 1. public class Client { 2. 3.private Client(){}; 4. 5.public static void main(String[] args){ 6. //创建WebService客户端代理工厂 7. JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean(); 8. //注册WebService接口 9. factory.setServiceClass(HelloWorld.class); 10. //设置WebService地址 11. factory.setAddress("http://localhost:9000/HelloWorld"); 12. IHelloWorld iHelloWorld = (IHelloWorld)factory.create(); 13. System.out.println("invoke webservice..."); 14. System.out.println("message context is:"+iHelloWorld.sayHi(" 15. Josen")); 16. System.exit(0); 17.} 18. } 19. public class Client { private Client(){}; public static void main(String[] args){ //创建WebService客户端代理工厂 JaxWsProxyfactorybean factory = new JaxWsProxyfactorybean(); //注册WebService接口 factory.setServiceClass(HelloWorld.class); //设置WebService地址 factory.setAddress("http://localhost:9000/HelloWorld"); IHelloWorld iHelloWorld = (IHelloWorld)factory.create(); System.out.println("invoke webservice..."); System.out.println("message context is:"+iHelloWorld.sayHi(" Josen")); System.exit(0); } } 最后是万事俱备,只欠测试了 首先,运行服务端程序 其次,打开浏览器,在地址栏中输入http://localhost:9000/HelloWorld?wsdl(因为cxf自带了一个jetty服务器),查看接口是否发布成功,如里浏览器页面显示下面内容,证明接口发布成功
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。