传递一个序列化的对象

时间:2013-08-19 00:15:33

标签: java serialization xml-rpc

在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类型:class java.io.ObjectOutputStream

2 个答案:

答案 0 :(得分:1)

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

addArticleArglist.addElement(oos);

我没有看到为什么你必须将它添加到Vector。

答案 1 :(得分:0)

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