Bja*_*sen 33 java android soap wsdl ksoap2
我必须从Android应用程序访问现有的SOAP Web服务.我已经提供了一些描述webservice的WSDL文件.在SO上阅读其他一些答案,似乎ksoap2-android是关于使用哪个SOAP客户端的方法.
接下来的问题是如何从WSDL文件中生成所需的Java类,这就是我要做的简短.据我所知,有以下选择:
我最初尝试#1,使用AXIS2 eclipse插件为wsdl2code生成器.该向导确实成功生成了大量的Java代码,但它也将我的android项目改为某种web服务项目,我从来没有能够获得任何生成的编译,更不用说使用ksoap2-android了.有人有这个成功吗?
我不能够成功运行wsdl2ksoap,因为它似乎需要一个正在运行的web服务,以及所有我必须在当前时间点是WSDL文件.同样从阅读网页开始,它似乎是一个初始阶段的项目,并没有真正准备好迎接黄金时段.
JAX-WS wsimport我还没有机会尝试.但是我不确定它生成的内容是否适用于ksoap2-android?
问题:如何从WSDL文件生成Java文件,以便在具有ksoap2-android SOAP客户端库的Android上使用?
非常感谢提前.
(PS:是的,选择是SOAP,它对Android使用来说不是最理想的,但我不能改变它.)
小智 14
我发现这个工具自动生成wsdl到android代码,
http://www.wsdl2code.com/example.aspx
这是代码:
public void callWebService() {
SampleService srv1 = new SampleService();
Request req = new Request();
req.companyId = "1";
req.userName = "userName";
req.password = "pas";
Response response = srv1.ServiceSample(req);
}
Run Code Online (Sandbox Code Playgroud)
小智 11
我有类似的情况(我只有wsdl文件没有工作webservice).我用过
为android生成类没有任何问题.此工具使用ksoap库.这个工具的优点是它支持WCF扩展和类型,如与IsReference属性或Guid的数据契约.
Bja*_*sen 10
经过相当多的研究后得出的结论是,遗憾的是,没有这样的(成熟的)工具可用.AXIS2或JAX-WS都不适用于Android,而WSDL2ksoap对于任何实际使用来说都太不成熟了.
然而,有一个名为wsclient ++的专有工具可以很好地完成这项工作.(阅读下面的更新,当实际使用时,它根本没有距离.)它不使用ksoap2-android客户端库,它有它自己的.
客户端库有点粗糙,因为它对http传输有很强的依赖性,使得(单元)测试有点复杂.但它可以很容易地修改以允许DI,因为源在分布式jar文件中可用.
然而,wsdl到java生成器的工作非常完美,可以节省大量的时间.
更新
使用wsclient++一段时间之后,显然生成的类非常粗糙,并且根本不处理错误情况.(每个方法都声明throws Exception).
我们不再使用wsclient ++,我也不建议任何人使用它! 不幸的是,我们还没有找到任何可行的替代方法.:/
最后我们使用AXIS2转换了我们的WSDL文件,然后写了一堆自定义脚本来剥离并将生成的java文件转换为使用ksoap2-android库在android上构建的东西.非常hackish,需要大量的体力劳动才能运行.不幸.如果您找到更好的方法,或者出现更好的方法,请提供新的答案.
| 归档时间: |
|
| 查看次数: |
37670 次 |
| 最近记录: |