如何从返回的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()
。丑陋,但工作。
我在客户端更改了我的代码,将其转换为Object []而不是String []。 Object [] result =(Object [])client.execute(“Message.getMessages”,new Object [] {});问题是这个数组的长度为0,尽管应该有它的项目。 – dominos 2010-10-18 21:46:01
这就是你从服务器返回的内容......除非你没有包含向列表添加值的附加代码。 – Bivas 2010-10-18 21:50:43
是的,我在返回之前将值添加到列表中。 – dominos 2010-10-18 21:53:01