【问题标题】:passing a serialized object传递一个序列化的对象
【发布时间】:2013-08-19 00:15:32
【问题描述】:

在 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

【问题讨论】:

    标签: java serialization xml-rpc


    【解决方案1】:

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

    addArticleArglist.addElement(oos);
    

    我看不出你必须将它添加到 Vector 的任何理由。

    【讨论】:

    • 因为 xmlrpc。它使用 client.execute 方法,该方法要求您将要调用的方法放在服务器上,如果您想将任何变量传递给向量以获取更多信息,请访问此处:ws.apache.org/xmlrpc/index.html
    【解决方案2】:

    序列化自动发生。您无需采取进一步的行动来序列化对象——只需将其用作参数,它就会自动被序列化。

    【讨论】:

      猜你喜欢
      • 2015-09-17
      • 2021-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-06-23
      • 1970-01-01
      • 2011-12-02
      • 2021-09-23
      • 1970-01-01
      相关资源
      最近更新 更多