webservice 作为客户端的开发

接口功能制作之前,客户(WMS)会提供一个 wsdl 类型的文件给我们,我们需要使用 Apache CXF 将其转换为 java 文件,以下为方法

  

**1.**将 apache-cxf-2.6.16.rar 压缩包下载,解压

 

**2.**创建环境变量

我的电脑 (反键)-> 属性 -> 高级系统设置 -> 高级 -> 环境变量

创建变量:

变量名称:CXF_HOME

变量值:D:\apache-cxf-2.6.16 (此处为你刚下载下来的压缩包解压到的文件夹目录)

新增变量:

向环境变量 CLASSPATH(若系统变量中没有,请自行新建)中新增

%CXF_HOME%\lib;

向环境变量 PATH(若系统变量中没有,请自行新建)中新增

%CXF_HOME%\bin;

  

2.1 测试环境变量是否配置成功

2.1.1 打开控制台

键盘快捷键 Window+R,打开“运行”,输入 cmd,回车

2.1.2 输入 java2ws,回车

若控制台返回的,不是

“‘java2ws’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”,

则环境配置成功

 

**3.**利用 Apache CXF 将 wsdl 文件装换成为 java 文件

3.1 在控制台,进入到 Apache CXF 所在目录(即压缩包解压文件目录)下的 bin 目录

怎样进入文件夹请自行百度

3.2 然后输入,wsdl2java xx\xx 其中 xx\xx 为 wsdl 文件所在目录

3.3 执行完成之后,在路径 D:\apache-cxf-2.6.16\bin 下找到新生成的文件夹,比如说 apache-cxf-2.6.16\bin\com\baicmotor\wms...

3.4 该文件夹的路径即我们需要在项目中新建的包名(该目录下其中一个 java 文件的抬头就是这样的:package com.baicmotor.wms;),新建好之后,将 java 文件复制进该包下【注意:该包一般建在接口模块(uma-interface)下,因为所有模块都引用了该模块,可以调用该木块下的所有类】

 

到此,wsdl 文件生成 java 文件完成

 

**4.**调用方法

代码如下:

// 调用客户的 webservice 接口

try {

        // 要调用的 url 地址(wms 接收数据的地址)

String wsUrl=“http://127.0.0.1:8080/uma-unimax-web/ws/test?wsdl”;

URL url= new URL(wsUrl);

 

// 创建 webservice 链接

RMesWmsCXFService_Service service=new RMesWmsCXFService_Service(url);

 

// 要发送的数据(封装要传的数据)

java.util.List<com.baicmotor.wms.MesOrderPlanInfo>  data= getData(list);

// 调用订单接口,发送数据

service.getRMesWmsCXFServicePort().mesOrderPlan(data);

 

   } catch (Exception e) {

                    e.printStackTrace();

    }

 

**5.**需要注意的是

我们需要新建一个实体类,对应的也需要新建一个表,用于报存调用接口后,对方(WMS)是否接收成功的信息

然后将发送的数据的实体类(表外键)对应上新建的实体类(表主键),具体可参考常州北汽项目,订单发布中的接口调用方法中的“4. 调用方法”中的代码部分