2013-08-19 75 views
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类型的OutputStream:类java.io.ObjectOutputStream中

回答

1

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

addArticleArglist.addElement(oos); 

我看不出有什么理由必须将它添加到Vector中。

+0

由于xmlrpc。它使用client.execute方法,该方法要求您将要调用的方法放在服务器上,并且如果要传递矢量 以获取更多信息,请转到此处: http://ws.apache.org/ XMLRPC/index.html的 –

0

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