我可以在java中使用xmlrpc传递对象吗?

时间:2013-08-18 16:42:17

标签: java xml-rpc

我想使用xmlrpc传递一个对象,因为这是我可以将Integer和String传递给服务器上的方法的唯一可能方式。是否可以使用对象执行此操作?如果没有,还有其他方法吗?

我试图这样做,但是收到了这个错误:

  

JavaClient:XML-RPC Consumer Fault#java.io.IOException:unsupported   Java类型:类Client.Article

这是客户端的代码:

public void addHash()
{
    try {
            addAuthorName = txtAddAuthorName.getText();
            int addArticleNumber = Integer.parseInt(txtAddArticleNumber.getText()); 
            newArticle = new Article(addAuthorName, addArticleNumber);

        Vector<Object> addArticleArglist = new Vector<Object>();
        addArticleArglist.addElement(newArticle);
        System.out.println(newArticle);

        // make the call
        String callit = ("GetSize.addHash");
        articleID = (Integer) client.execute(callit, addArticleArglist);
    } // Use XmlRpcException errors
    catch (XmlRpcException exception) {
        System.err.println("JavaClient: XML-RPC Consumer Fault #"
                + Integer.toString(exception.code) + ": "
                + exception.getCause() + "" + exception.toString());
    } catch (Exception exception) {
        System.err.println("JavaClient: XML-RPC Consumer Fault #" + exception.toString());
    }

}

这是服务器端的代码但是通过使用System.out.println我发现无论出于何种原因,此方法中的代码都没有被执行:

public void addHash(Article newArticle)
   {
       theHashtable.addHash(newArticle.getArticleName(), newArticle.getAuthorID());
   }

1 个答案:

答案 0 :(得分:1)

假设您使用的是ws-xmlrpc文档,请说明以下内容:

DOM nodes, or JAXB objects, can be transmitted. So are objects implementing the java.io.Serializable interface.

因此,通过声明您的对象可序列化,您将能够传输它。根据你想做的事情,好好了解一下jaxb。

有关详细信息,请参阅http://ws.apache.org/xmlrpc/