我正在使用Magento
向XMLRPC
服务器发出请求,以使用multiCall()
函数获取详细信息。 />
我在调用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();
}
答案 0 :(得分:0)
异常几乎是不言自明的:callEx
方法调用的结果是java.lang.Object
类型,并且您尝试将其强制转换为String[][]
。
显然,返回的值不是String[][]
类型。您是否拥有此callEx
方法的来源?如果是的话,我建议您深入研究它究竟会返回什么。