2013-08-19 4 views
0

Dans xmlrpc, les objets doivent être sérialisés avant de pouvoir être transmis sur un réseau. C'est ce que j'essaie de faire.Passage d'un objet sérialisé

 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); 

Le problème que je reçois est que mon programme ne sera pas accepter le outputstream qui est contenu dans le vecteur l'erreur est donnée

type Java non pris en charge: classe java.io.ObjectOutputStream

Répondre

1

Vous pouvez uniquement sérialiser les objets qui implémentent l'interface java.io.Serializable. L'instruction ci-dessous ajoute ObjectOutputStream au vecteur qui n'implémente pas cette interface.

addArticleArglist.addElement(oos); 

Je ne vois pas pourquoi vous devez ajouter cela à Vector.

+0

en raison du xmlrpc. il utilise la méthode client.execute qui vous oblige à mettre la méthode que vous voulez appeler sur le serveur et si vous voulez passer des variables pour plus d'informations, rendez-vous ici: http://ws.apache.org/ xmlrpc/index.html –

0

La sérialisation est automatique. Vous n'avez pas besoin d'entreprendre d'autres actions pour sérialiser l'objet. Utilisez-le simplement en tant que param et il sera automatiquement sérialisé.

Questions connexes