3

我想使用 xmlrpc 传递一个对象,因为这似乎是我可以将整数和字符串传递给服务器上的方法的唯一可能方式。是否可以使用对象来做到这一点?如果没有,还有其他方法吗?

我试图这样做,但收到此错误:

JavaClient:XML-RPC Consumer Fault #java.io.IOException:不支持的 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());
   }
4

1 回答 1

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/

于 2013-08-18T16:54:14.957 回答