WebService CXF学习

首先到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服务器),查看接口是否发布成功,如里浏览器页面显示下面内容,证明接口发布成功 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值