2012-08-29 38 views
2

響應我使用XMLRPC使用multiCall()函數來獲取細節作出請求Magento服務器
我已經實現了成功在調用multiCall()函數,因爲它不是結果爲任何Exception此處應該使用什麼數據類型來接受來自服務器

我使用Objects正在發送數據,當我使用ObjectDataType得到響應,它給人的Exception

java.lang.RuntimeException: An error occured while executing doInBackground() 
at android.os.AsyncTask$3.done(AsyncTask.java:200) 
at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 
at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 
at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
at java.lang.Thread.run(Thread.java:1019) 
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; 
at org.xmlrpc.ProductService$doingBackTask.doInBackground(ProductService.java:94) 
at org.xmlrpc.ProductService$doingBackTask.doInBackground(ProductService.java:1) 
at android.os.AsyncTask$2.call(AsyncTask.java:185) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)  

,我用它來打電話是因爲遵循的代碼:

Object[] skuid=new Object[product_list.size()]; 
Object calling[]=new Object[product_list.size()]; 

for(int m=0;m<product_list.size();m++) 
{ 
    skuid[m]=new Object[]{product_list.get(m).getp_Sku()}; 
    calling[m]=new Object[]{"catalog_product_attribute_media.list",skuid[m]}; 
} 

Object b[][]; 
try 
{ 
    // The Upcoming line causes Exception : java.lang.ClassCastException 
    b=(Object[][])client.callEx("multiCall",new Object[]{sessionId,calling}); 
} 
catch (XMLRPCException e) 
{ 
    e.printStackTrace(); 
} 

回答

0

這個例外幾乎是自我探索anatory:callEx方法調用的結果爲java.lang.Object,您試圖將其轉換爲String[][]

顯然,返回的值不是String[][]類型。你有這個callEx方法的來源嗎?如果是的話,我建議你深入瞭解它究竟返回了什麼。

+0

Aleks G ...我很幸運。事實上,我已經編輯它,並將其設置爲Object,就在您可能正在回答它的時候。我們都可能處於編輯模式。實際上,我嘗試了很多不同的在把問題放在這裏之前的事情。並且這是我嘗試過的最後一件事情。:))..其實multiCall()是Magento提供的API調用。我沒有Code.Call將返回產品圖像的URLS列表。但用Object替換它也會給我同樣的例外。 –

+0

@HareshChaudhary請顯示'callEx'方法的代碼 - 這是負責打包結果的方法。 –

+0

Aleks G:這是一個由Android-XMLRPC庫提供的內部方法......但我仍然想給出類似你問我的類..它在這裏..http://pastie.org/private/uidmu3pwrnhkmpc1tneq –

相關問題