2012-06-26 89 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我得到這個錯誤:如何使用Android應用程序的wsdl服務(基於Azure)

[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」:

不適宜或錯誤地使用核心類(java。*或javax。 *)不構建核心庫時。

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

但是,您可能實際上正試圖在覈心命名空間中定義一個類,例如,您可能從非Android虛擬機項目中獲取了該類的源。這肯定是行不通的。至少,它會危害您的應用程序與未來版本的平臺的兼容性。它也常常是有問題的合法性。

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

如果你繼續使用「--core-library」,但實際上正在構建一個應用程序,那麼應該預先警告你的應用程序在某些時候仍然無法構建或運行。請爲憤怒的客戶做好準備,例如,他們發現您的應用程序在升級操作系統後就停止運行。你會責怪這個問題。

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

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

請幫我...

回答

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應用程序執行相同的操作。如果您發現問題,請比較兩者之間的網絡流量以查看可能會幫助您找出根本原因以及針對特定問題提出問題的不同情況,並且您將得到適當的幫助。祝你好運!!

相關問題