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 に答える