2

関数を使用して詳細を取得するために、サーバーリクエストを送信しています。どの関数にもな​​らないため、関数の呼び出しに成功し ましMagento XMLRPCmultiCall()
multiCall()Exception

私はデータObjects送信するために使用していますが、応答Object DataTypeを取得するために使用すると、次のよう になります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();
}
4

1 に答える 1

0

例外はほとんど一目瞭然です。callExメソッド呼び出しの結果は型java.lang.Objectであり、それを にキャストしようとしていますString[][]

明らかに、戻り値は型ではありませんString[][]callExこの方法のソースはありますか?はいの場合は、それを掘り下げて、正確に何が返されるかを確認することをお勧めします。

于 2012-08-29T11:00:15.060 に答える