微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WebService CXF学习 1

理论联系实际,单单只讲理论那就成了纸上谈兵,用一个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] 举报,一经查实,本站将立刻删除。

相关推荐