2011-05-09 74 views
7

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

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

2)ksoap2产生存根-0.1-快照J2ME的机器人。

但我无法生成一个可以使用的适当的存根。请建议您用于此目的的任何图书馆或工具。

谢谢!!

任何人在这里!

更新:

问题与sun的java lib目录下:有未Android支持一些Java库。对于例如:“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) 

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

+0

为什么不直接编程呢? – 2011-05-09 19:53:54

+0

有很多的API调用加上大量的自定义集合类型。编写所有这些api需要更多的时间。 – mudit 2011-05-10 05:28:08

+0

所以你有一个wsdl文件或什么东西,你想生成一个存根,所以你的android程序可以调用Web服务方法? – kharles 2011-05-13 05:33:50

回答

2

你有没有把ksoap2的jar文件包含到你的项目中?我做了和使用kso​​ap2 web服务的例子,并成功地得到它。我已经使用了www.w3schools.com的在线网络服务,该网络服务的详细信息如下:

soap_action =“http://tempuri.org/CelsiusToFahrenheit”; method_name =“CelsiusToFahrenheit”; namespace =“http://tempuri.org/”; url =“http://www.w3schools.com/webservices/tempconvert.asmx”;

希望这将有助于you.Good运气

+0

嗨Jannat,你可以给一些例子链接或教程或可能是一个代码示例?这将非常有帮助。 – mudit 2011-05-18 06:08:13

+0

www.vimeo.com/9633556这一定会帮助你... – 2011-05-18 06:28:36

+3

感谢您的视频。但这不是我正在寻找的东西。我正在寻找这个:我有一个WSDL文件,其中包含一些方法(它返回一些复杂的对象)。现在我想用一些我可以用来访问这些方法的工具来生成Java代码。 – mudit 2011-05-18 09:18:37

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 
1

还有http://easywsdl.com生成器。它使用kso​​ap2库,并支持复杂类型(带继承),属性中的数据,标题值和WCF扩展,如Guid数据类型和具有IsReference属性的数据契约。