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. 调用方法”中的代码部分