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还是不错地,不过需要封装下发送的数据包
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。