2012-06-26 43 views
0

1).I從WSDL生成Web服務客戶端(使用Axis2 1.5 carnel,wsdl2java,Tomcat 7.0); 2)。從Android訪問JAX-WS Web服務使用KSoap2-android庫(我在服務http://www.webservicex.net/ConvertWeight.asmx上測試了這個lib,它工作正常)。但與http://xxx.svc?wsdl一起工作我無法連接到該服務。當我從Android Progect生成Web服務客戶端時,出現以下錯誤: 「IWAB0399E從WSDL生成Java時出錯:java.io.IOException:Emitter失敗。WSDL文檔中存在未定義的綁定(BasicHttpBinding_ICustomerService)。肯定是完全合格的。「 3)。從Web服務客戶端,我製作了service.jar,它在Android Progect上使用了lib,但不工作。 4)。當我使用kso​​ap2我得到這個錯誤:如何在Azure中的android中使用wsdl服務

[2012-06-26 17:25:33 - TranscribeMe_2.2] Dx 1錯誤;中止 [2012-06-26 17:25:33 - TranscribeMe_2.2]轉換爲Dalvik格式失敗,錯誤1 [2012-06-26 17:26:32 - TMP] Dx警告:忽略匿名的InnerClasses屬性內部類 (org.ksoap2.transport.KeepAliveHttpsTransportSE $ 1)不包含與 關聯的EnclosingMethod屬性。這個類可能是由一個 編譯器生成的,它不針對現代.class文件格式。建議的 解決方案是使用最新的編譯器 並且不指定任何「-target」類型選項,從源代碼重新編譯該類。忽略 這個警告的結果是,對這個類的反射操作將錯誤地 指示它是而不是的一個內部類。 [2012-06-26 17時26分33秒 - TMP] DX 麻煩處理 「的javax/XML/WS/Dispatch.class」:

不明智或錯核心類(爪哇使用*或javax。*) 當不構建核心庫時。

這通常是由於在使用IDE(例如 Eclipse)時在應用程序項目中無意中包含了核心庫文件 。如果你確定你不是故意定義一個 核心類,那麼這是對 正在進行的最可能的解釋。

但是,您可能實際上正試圖在覈心 名稱空間中定義一個類,該名稱空間可能來自您的源,例如,來自非Android虛擬機項目的 。這將大多數 肯定無法正常工作。至少,它會危害您的應用與該平臺的未來版本的兼容性 。 它也常常是有問題的合法性。

如果你真的打算建立一個核心庫 - 這是隻有 適合作爲創建一個完整的虛擬機 發行版的一部分,而不是編譯應用程序 - 然後使用 的「--core庫」選項來抑制此錯誤消息。

如果你繼續使用「--core庫」,但事實上是 構建應用程序,然後諒解,您的應用程序 仍然將無法生成或運行,在某些時候。請爲 爲憤怒的客戶做好準備,例如,發現您的 應用程序在升級其運行的 系統後將停止運行。你會責怪這個問題。

如果您正在合理使用 核心軟件包中的某些代碼,那麼最簡單的安全替代方法是 重新打包該代碼。也就是說,將有問題的類移動到您自己的包名稱空間的 。這意味着他們永遠不會與 與核心系統類衝突。 JarJar是一個工具,可以幫助你在這個努力中。如果你發現你不能這樣做,那麼這表明你所在的路徑最終會導致痛苦,痛苦,悲傷和悲傷。

[2012-06-26 17:26:33 - TMP] Dx 1錯誤;中止 [2012-06-26 17點26分33秒 - TMP]轉換爲Dalvik的格式錯誤1

請幫我...

+0

我試着讀幾段時間來理解你的問題。您是否嘗試通過Android中的WSDL訪問Web服務並遇到問題?此Windows服務託管的Web服務也是?您的Android項目如何與Windows Azure相關? – AvkashChauhan

+0

我不熟悉Azure中包含的wsdl服務的工作,可以顯示一些示例或鏈接。此Windows服務託管的Web服務也是? - 是的。您的Android項目如何與Windows Azure相關? - 那是怎麼回事? – user1474844

回答

0

失敗如果將搜索計算器的軸和WCF/WSDL問題,你會發現很多沒有任何答覆或建議,這樣就不會有很多,你將能夠

關於您的以下錯誤:

There is an undefined binding (BasicHttpBinding_ICustomerService) in the WSDL document. 
Hint: make sure is fully qualified." 

我可以說,這個問題可能與如何相關ICustomerService綁定被定義。由於您選擇了BasicHttpBinding,請確保所有參數都正確。如果您檢查您的Axis生成的WSDL,您將能夠輕鬆驗證它。

另外在某些情況下,您可能會遇到名稱空間問題以及哪些可能導致Axis WSDL生成service.svc?wsdl = wsdl0和service.svc?wsdl = wsdl1。如果是這種情況,您可以通過爲每個數據協定添加名稱空間屬性以及Web服務端點的消息標題,正文和添加的綁定名稱空間屬性來解決名稱空間問題。

我的第一個建議是創建一個簡單的C#客戶端應用程序,並連接到您的Windows Azure WCF服務,並驗證您可以使用BasicHttpBindings進行連接而沒有任何問題,然後使用Java應用程序執行相同的操作。如果您發現問題,請比較兩者之間的網絡流量以查看可能會幫助您找出根本原因以及針對特定問題提出問題的不同情況,並且您將得到適當的幫助。祝你好運!!

相關問題