在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
答案 0 :(得分:1)
您只能序列化实现java.io.Serializable
接口的对象。下面的语句将ObjectOutputStream
添加到未实现该接口的Vector。
addArticleArglist.addElement(oos);
我没有看到为什么你必须将它添加到Vector。
答案 1 :(得分:0)
序列化自动发生。您不需要采取进一步的操作来序列化对象 - 只需将其用作参数,它将自动序列化。