2011-05-09 46 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屬性的數據契約。