2013-08-19 2 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); 

Проблема я получаю то, что моя программа не принимает OutputStream, который содержится в векторе выдаваемая ошибка является

неподдерживаемый тип Java: класс java.io.ObjectOutputStream

ответ

1

Вы можете сериализовать объекты, реализующие интерфейс java.io.Serializable. Ниже оператор добавляет ObjectOutputStream к вектору, который не реализует этот интерфейс.

addArticleArglist.addElement(oos); 

Я не вижу причин, почему вы должны добавить это в вектор.

+0

из-за xmlrpc. он использует метод client.execute, который требует, чтобы вы поставили метод, который хотите вызвать на сервере, и если вы хотите передать любые переменные вектору для получения дополнительной информации перейдите сюда: http://ws.apache.org/ XMLRPC/index.html –

0

Сериализация происходит автоматически. Вам не нужно предпринимать дальнейшие действия для сериализации объекта - просто используйте его как параметр, и он будет автоматически сериализован.