0

在 xmlrpc 中,对象需要在它们可以通过网络传输之前进行序列化,所以这就是我想要做的。

        addAuthorName = txtAddAuthorName.getText();
        int addArticleNumber = Integer.parseInt(txtAddArticleNumber.getText()); 
        newArticle = new Article(addAuthorName, addArticleNumber);
        ObjectOutputStream oos;

        oos = new ObjectOutputStream( 
        new ByteArrayOutputStream());
        oos.writeObject(newArticle);

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

        // make the call
        String callit = ("GetSize.addHash");
        articleID = (Integer) client.execute(callit, addArticleArglist);

我遇到的问题是我的程序不会接受向量中包含的输出流,给出的错误是

不支持的 Java 类型:类 java.io.ObjectOutputStream

4

2 回答 2

1

您只能序列化实现java.io.Serializable接口的对象。下面的语句添加ObjectOutputStream到未实现该接口的 Vector 中。

addArticleArglist.addElement(oos);

我看不出有任何理由必须将其添加到 Vector。

于 2013-08-19T00:18:58.467 回答
0

序列化自动发生。您不需要采取进一步的行动来序列化对象 - 只需将其用作参数,它将自动序列化。

于 2013-08-19T00:20:49.927 回答