【问题标题】:Web services stub generation + androidWeb 服务存根生成 + android
【发布时间】:2011-05-09 12:59:53
【问题描述】:

我想生成一个基于 android(java) 的 STUB 来访问所有的网络服务。我尝试使用以下工具生成存根:

1) 用于 CLDC 的 Sun Java (TM) 无线工具包 2.5.2_01,

2) ksoap2-generating-stub-0.1-SNAPSHOT-J2me-Android。

但我无法生成可以使用的正确存根。请建议您为此目的使用的任何库或工具。

谢谢!!

这里有人!!

更新:

sun java lib 的问题: Android 不支持一些 java lib。例如:“javax.microedition.xml.rpc.Operation”等

ksoap2 的问题:使用以下登录命令提示符获取空指针异常:

我使用 Windows 命令提示符运行的命令:

java -cp ksoap2-generating-stub-0.1-SNAPSHOT-jar-with-
dependencies.jar;"%JAVA_HOME%\lib\tools.jar"
ksoap2.generator.Wsdl2Android -w "http://localhost:8080/Ws2Ksoap/
services/HelloWorld?wsdl" -g .\generated

只要我运行这段代码,我就会得到以下异常:

Exception in thread "main" java.lang.NullPointerException
        at ksoap2.generator.WsCompiler.compile(WsCompiler.java:86)
        at ksoap2.generator.WsCompiler.run(WsCompiler.java:78)
        at ksoap2.generator.Wsdl2J2me.run(Wsdl2J2me.java:116)
        at ksoap2.generator.Wsdl2Android.main(Wsdl2Android.java:41) 

另一个更新:创建的网络服务不得使用任何java.rmi.*包的实例。

【问题讨论】:

  • 为什么不直接编程呢?
  • 有很多 api 调用以及很多自定义集合类型。自己编写所有这些 api 将花费更多时间。
  • 所以你有一个 wsdl 文件或其他东西,并且你想生成一个存根,以便你的 android 程序可以调用 Web 服务方法?
  • 您在上面提到的 2 个库中遇到了哪些问题?
  • @kharles,感谢您的回复,我尝试使用axis2,但它使用了一些android 不支持的java 类。所以不能那样走..

标签: android web-services ksoap2


【解决方案1】:

您是否已将 ksoap2 jar 文件包含到您的项目中...?我已经完成了使用 ksoap2 的 webservice 示例并成功获得了它。我曾经使用过www.w3schools.com的在线网络服务,网络服务的详细信息如下......

soap_action = "http://tempuri.org/CelsiusToFahrenheit"; method_name = "摄氏度到华氏度"; 命名空间=“http://tempuri.org/”; url = "http://www.w3schools.com/webservices/tempconvert.asmx";

希望这会对你有所帮助。祝你好运

【讨论】:

  • 您好 Jannat,您能否提供一些示例链接或教程,或者可能是代码示例?这真的很有帮助。
  • 感谢您的视频。但这不是我要找的东西。我正在寻找这个:我有一个 WSDL 文件,其中包含一些方法(返回一些复杂的对象)。现在我想使用一些工具来生成 java 代码,这些工具可以用来访问这些方法。
  • @mudit..如果您有解决方案,请发布解决方案。如果你能在我遇到同样的问题时帮助我,那就太好了..'
  • @AmritpalSingh:不,我没有得到解决方案。我自己编写了整个存根。整个服务连接逻辑,响应解析等。
【解决方案2】:

发生此异常是因为您从 JRE 运行 java,但它搜索编译器但找不到它。使用 JDK 中的 java.exe,如下所示:

"c:\Program Files\Java\jdk1.6.0_20\bin\java.exe" -cp ksoap2-generating-stub-0.1-SNAPSHOT-jar-with-dependencies.jar;"%JAVA_HOME%\lib\tools.jar" ksoap2.generator.Wsdl2Android -w "http://address/Service.svc?wsdl" -g .\generated

【讨论】:

    【解决方案3】:

    http://easywsdl.com 生成器。它使用 ksoap2 库并支持复杂类型(具有继承)、属性中的数据、标头值和 WCF 扩展,如 Guid 数据类型和具有 IsReference 属性的数据协定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-02
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      • 2010-11-16
      相关资源
      最近更新 更多