ofbiz的webservice接口提供(3)-wsdl文件的不规范性
2016-07-29 00:00
375 查看
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还是不错地,不过需要封装下发送的数据包
这里不得不说我遇到的一个问题就是客户端代码的生成。
常规说来,我们拥有了服务器端暴露出来的一个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还是不错地,不过需要封装下发送的数据包
相关文章推荐
- android中使用httpclient提交表单
- 消息摘要算法-MAC算法系列
- springframework(九)AOP的advices,中规中矩的使用方式
- 第三章:Creating Applications and activities-(一)什么组成了一个Android应用
- memcache集群使用原则
- glassfish 安装
- 邮件营销相关技术知识
- ofbiz的webservice接口提供(3)-不规范的wsdl的客户端访问代码
- EXECUTE IMMEDIATE 使用小结
- Activemq(1)
- memcache的一致性hash算法使用
- 抄袭的人是可耻的
- zookeeper典型使用场景
- “抄袭事件”判决书
- linux下根据日期创建文件或者文件夹
- apache的博客roller的url重写功能,以及apache的二级域名配置
- ldd 的一个安全问题
- 在spring的bean中获取ServletContext
- 跟我一起写 Makefile(六)
- 设定linux的ip地址