从 WSDL 生成 Java,以便在 Android 上使用 ksoap2-android SOAP 客户端?

2022-09-01 06:58:50

我必须从 Android 应用程序访问现有的 SOAP Web 服务。我得到了一些描述Web服务的WSDL文件。在SO上阅读其他一些答案,似乎ksoap2-android是要走的路,关于使用哪个SOAP客户端。

下一个问题是如何从 WSDL 文件中生成所需的 Java 类,这就是我要解决的问题。据我所知,有以下选项:

  1. AXIS2 代码生成器
  2. WSDL2ksoap
  3. JAX-WS wsimport tool

我最初尝试了#1,使用用于wsdl2代码生成器的AXIS2 eclipse插件。该向导确实成功生成了大量的Java代码,但是它也将我的Android项目更改为某种Webservice项目,并且我永远无法获得任何生成以进行编译的内容,更不用说使用ksoap2-android了。有人在这方面取得了成功吗?

我无法成功运行 wsdl2ksoap,因为它似乎需要一个正在运行的 Web 服务,而我目前所拥有的只是 WSDL 文件。同样,从阅读网页来看,它似乎是一个处于初始阶段的项目,并没有真正为黄金时段做好准备。

JAX-WS wsimport 我还没有机会尝试。但是我不确定它生成的内容是否适用于ksoap2-android?

问:如何从 WSDL 文件生成 Java 文件,以便在带有 ksoap2-android SOAP 客户端库的 Android 上使用?

提前非常感谢。

(PS:是的,选择是SOAP,它对于Android使用来说是次优的,但我无法改变这一点。


答案 1

我发现这个工具可以自动生成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);
}

答案 2

我有类似的情况(我只有wsdl文件而没有工作的Web服务)。我用过

http://easywsdl.com/

为Android生成类,没有任何问题。此工具使用 ksoap 库。此工具的好处是它支持 WCF 扩展和类型,如具有 IsReference 属性或 Guid 的数据协定。


推荐