用cxf 搭 webservice 客户端

来源:互联网 发布:淘宝有小口栓卖吗 编辑:程序博客网 时间:2024/05/16 07:52

1.接口地址:http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl

 2.lib包版本为:

   spring版本 4.2.8.RELEASE
   cxf版本 3.1.6

 3.采用w2dl生成

    以下这些源自网上:

   a.环境配置

   新建CXF_HOME      C:\ProgramFiles(my)\apache-cxf-2.7.2

   在CLASSPATH          %CSF_HOME%\lib

   在PATH中添加           %CSF_HOME%\bin
   验证:

      操作   win+R    ---> cmd  --->  回车   ---》 wsdl2java -v
      结果 显示  wsdl2java - Apache CXF 2.7.2
      证明配置成功

   b.wsdl2java工具使用

     
    操作   win+R    ---> cmd  --->  回车   ---》 wsdl2java  -frontend jaxws21 -p  com.jiuzi.HelloCXF -d D:\  -client -autoNameResolution

    http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl 

   结果 将会在D盘根目录下生成HelloCXF的客户端代码,将其复制到项目中便可使用。

   c.参考它的文档看这个工具的具体参数的用法
   wsdl2java用法:
   wsdl2java -p com -d src -all  aa.wsdl
  -p  指定其wsdl的命名空间,也就是要生成代码的包名:
  -d  指定要产生代码所在目录
  -client 生成客户端测试web service的代码
  -server 生成服务器启动web  service的代码
  -impl 生成web service的实现代码
  -ant  生成build.xml文件
  -all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

 



 4.采用JaxWsProxyFactoryBean编写

 


a.web 项目集成 spring。

b.贴一下client代码。


public class Client {
 public static void main(String[] args) {
  /* 调用方法一
   *  //创建web服务代理工厂 
    JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
    //设置要调用的web服务服务端发布地址 
    factory.setAddress("  http://10.10.2.10/serviceportal/ws/lotteryResult?wsdl ");
    //设置要调用的web服务 
    factory.setServiceClass(LotteryResult.class);
    //创建web服务对象 
    Object o = factory.create();
    LotteryResult service = (LotteryResult)o;
    //通过对象调用web服务的方法 
    String response=service.getResultStatus("11");
    System.out.println("结果:"+response);*/
  
    /*调用方法二   结合spring*/
  ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"jaxws-cxf-client.xml"});
  LotteryResult lotteryservice = (LotteryResult)context.getBean("lotteryResultService");
  String response=lotteryservice.getResultStatus("12");
     System.out.println("结果:"+response);
 
  
 } 

}