前端时间出差做项目,因为我们给对三方工厂做Mes项目,其中有一个报工环节,需要我们的Mes中将产品提交到他们的U9(Erp)上,但是由于u9是用友的产品,用c#写的,而我是用java写的,那么WebService生成的代码就稍微难一些,第三方公司也无法精确调试程序,导致我这边白白花费了半个月的时间去跟u9对接,最后我们所有人都没有办法了,直接采用C#重新写一个WebService作为中间者,而我们调用新的WebService就相当容易了,其实这也是一种解决办法。
第一次与WebService做对接,所以就借此机会记录一笔。
对方会给的文档,其中有一个url,根据这个url就可以生成客户端代码。(其实还可以采用eclipse自带功能生成代码,不过作者还是推荐采用如下这种方式更好)
使用工具:如apache-cxf-3.2.1.zip,下载地址:http://cxf.apache.org/download.html
解压apache-cxf-3.2.1到D:\\apache-cxf-3.2.1,
设置环境变量
1、CXF_HOME=D:\apache-cxf-3.2.1
2、在path后面加上 %CXF_HOME%/bin;
3、通过cmd,输入wsdl2java,提示usage则配置成功。
4、开始生成代码:将文档中的url:http://i.simon.com.cn/CreateDispatchCompeleteOrder/CreateDispatchCompeleteService?wsdl
cmd中执行:
wsdl2java -d E:\\u9 -client http://i.simon.com.cn/CreateDispatchCompeleteOrder/CreateDispatchCompeleteService?wsdl ,
那么u9这个目录中会生成相应的代码,放入项目中即可,最后参照对方给的文档开始编写。
这段代码一半都是我的固定用法,还有一些wsdl2java的命令可以参照:
-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.