2010-10-18 54 views
0

我使用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數組?

回答

1

基於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

相關問題