当前位置 : 主页 > 网页制作 > Nodejs >

ofbiz的webservice接口提供(3)-wsdl文件的不规范性

来源:互联网 收集:自由互联 发布时间:2021-06-24
ofbiz是使用axis2来做的webservice服务器。 这里不得不说我遇到的一个问题就是客户端代码的生成。 常规说来,我们拥有了服务器端暴露出来的一个wsdl文件,我们就可以轻而易举的来生成

   ofbiz是使用axis2来做的webservice服务器。

  这里不得不说我遇到的一个问题就是客户端代码的生成。

  常规说来,我们拥有了服务器端暴露出来的一个wsdl文件,我们就可以轻而易举的来生成我们的客户端代码,但是由于ofbiz的特殊性,他们的wsdl文件是由他自己根据我们在servicedefine/services.xml文件中的输入输出参数来生成的。自然就不是很规范了。

  这里我补充一个小的知识,如何验证webservice的接口是否可用。

  1、查看wsdl文件是否可以被访问

  2、找一个比较著名的工具,xmlspy(我用的2009试用版),根据wsdl文件模仿客户端进行请求,看请求是否可达,返回是否正确

  我遇到的问题:

  1、因为我们是用java做的服务器端,一个.net想调用这个接口,直接根据wsdl生成.net的代理类,发现只有service没有方法

  2、使用xmlspy来模拟客户端,发现了方法,但是生成的客户端数据包中只有参数没有方法名称,和webservice接口交互,没反馈数据

  3、使用eclipse的客户端生成工具,发现没戏

 

  上边的问题的原因就是我们这个ofbiz的wsdl文件不规范,导致我们生成不正确。

 

   对应的解决办法:

   1、.net手动写代理类,不采用根据wsdl自动生成的方式。

   2、xmlspy,我直接将数据包手动加上要调用的方法,和webservice接口交互,发现通讯成功

   3、将axis的客户端的jar都引入,然后,手动写webservice的调用程序,经过调用,发现成功

 

总结:

   1、ofbiz的wsdl生成很不常规,导致我们的客户端生成工具无用武之地,大家还是手写吧。

   2、如果想快速试验ofbiz的soap接口是否可用,xmlspy2009还是不错地,不过需要封装下发送的数据包

网友评论