java与WebService对接案例--生成代码方法

        作者“为道日损”2018年1月份时间出差做项目,因为我们给对三方工厂做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.

博客:www.sudo.ren

评论区

shallwe

2019-07-08 11:24

支持一下做MES的同行

l745230

2019-07-08 11:43

不用引入cxf .可以使用jdk自带的wsimport命令生成WebService客户端代码.另外抛开代码,直接使用SoapUI工具调试WebService的xml报文.测试没问题了,生成下代码,调用起来很简单.

l745230

2019-07-08 11:44

感觉问题是出在"第三方公司也无法精确调试程序"

为道日损

2019-07-08 12:10

@l745230 u9公司没办法给我们答复,我们等了两天,最后理由有点含糊其辞,后来干脆我们团队想起他办法

为道日损

2019-07-08 12:14

@shallwe 我很同情做MES的同志,说真的,我离职后发过誓再也不做mes了

JFinal

2019-07-08 22:38

@为道日损 xml 型的 webservice 是上个时代的产物,当前只有一些老的遗留系统会玩这个东东

热门分享

扫码入社