如何从返回的XML-RPC对象中获取字符串数组?

问题描述:

我使用Apache java XML-RPC最新版本。如何从返回的XML-RPC对象中获取字符串数组?

发送服务器的阵列中的代码如下:

LinkedList<String> messages = new LinkedList<String>(); 

public String[] getMessages() { 
    System.out.println("Sent messages"); 
    return messages.toArray(new String[messages.size()]); 
} 

要接收客户端我已经试过这样的事情:

String[] result = (String[]) client.execute("Message.getMessages", new Object[] {}); 

这应该投我收到的对象到正确的类型(String [])。不幸的是,它没有,我得到以下错误:[Ljava.lang.Object;不能转换为[Ljava.lang.String;

所以我想知道如果有人知道如何正确地发送和接收在java XML-RPC数组?

基于http://ws.apache.org/xmlrpc/types.html客户端API将始终返回Object[]即使服务器返回String[]

我建议遍历结果,并呼吁各成员在toString()。丑陋,但工作。

+1

我在客户端更改了我的代码,将其转换为Object []而不是String []。 Object [] result =(Object [])client.execute(“Message.getMessages”,new Object [] {});问题是这个数组的长度为0,尽管应该有它的项目。 – dominos 2010-10-18 21:46:01

+0

这就是你从服务器返回的内容......除非你没有包含向列表添加值的附加代码。 – Bivas 2010-10-18 21:50:43

+0

是的,我在返回之前将值添加到列表中。 – dominos 2010-10-18 21:53:01