# Java > Gnral Java > Persistance des donnes >  Convertir un objet non srialisable en XML

## netdoor.fr

Bonjour,

je dois envoyer  travers le rseau un objet Java fourni par une API JNI : JPcap, la version qui permet d'envoyer des paquets.

Hlas, a la srialisation de l'objet Packet de l'API, j'obtiens une exception qui me dit que l'objet n'est pas srialisable.

Il me faut trouver un moyen d'envoyer dans un tunnel Tcp cet objet et de le retrouver  l'identique de l'autre cot.

J'ai pens a le srialiser vers XML (baisse de performance, mais ais je le choix?)

J'ai trouv ces API l qui "permettraient" de convertir en XML un objet non srialisable et inversement (en thorie car non test):

http://javolution.org/
http://jxm.sourceforge.net/manual.html
http://jade.tilab.com/
http://jsx.org/

Ma question: laquelle choisir pour des performances optimales?

----------


## Kh4iN3

Salut, 

Sinon il y  l'api XStream qui est trs simple  utiliser et en plus tu as un tutorial sur dvp :
tutorial

Voil j'espre que ca t'ira.

a+

----------


## g_rare

Voir aussi les classes XMLEncoder et XMLDecoder (directement) prsentes dans l'API Java depuis la version 1.4 !
 :;):

----------


## netdoor.fr

> Salut, 
> 
> Sinon il y  l'api XStream qui est trs simple  utiliser et en plus tu as un tutorial sur dvp :
> tutorial
> 
> Voil j'espre que ca t'ira.
> 
> a+


Ais je besoin de faire un fichier de mapping?  En fait je voudrais obtenir une reprsentation de l'objet sous forme XML, sans avoir a faire de mapping.

----------


## netdoor.fr

> Voir aussi les classes XMLEncoder et XMLDecoder (directement) prsentes dans l'API Java depuis la version 1.4 !


Je ne peu pas utiliser cel. Mon objet Packet n'est pas srialisable et il s'agit d'un objet d'une API JNI, donc je ne peu le modifier! :-s

Je voulais utiliser la serialisation binaire et cel ne marche pas (lire le premier post). C'est pour cel que je cherche un autre moyen d'envoyer un objet java non srialisable  travers le rseau (et le retrouver  l'identique de l'autre cot du tunnel tcp).

Merci

----------


## g_rare

XMLEncoder et XMLDecoder n'ont pas besoin de travailler sur des objets "Serializable" (contrairement  ce que tu sembles croire) !

http://java.sun.com/j2se/1.4.2/docs/...MLEncoder.html



> The *XMLEncoder* class is a complementary alternative to the ObjectOutputStream and *can used to generate a textual representation of a JavaBean* in the same way that the ObjectOutputStream can be used to create binary representation of Serializable  objects.


http://java.sun.com/j2se/1.4.2/docs/...va.lang.Object)



> public void writeObject(*Object* o)


 :8O:

----------


## netdoor.fr

En effet, merci beaucoup :0)

Mais, je ne connais pas les spcifications exactes des JavaBeans, et je ne sais pas vraiment si les classes suivantes y rpondent:

http://netresearch.ics.uci.edu/kfuji...et/Packet.html

http://netresearch.ics.uci.edu/kfuji.../IPPacket.html

http://netresearch.ics.uci.edu/kfuji...UDPPacket.html

----------


## g_rare

> Ais je besoin de faire un fichier de mapping?  En fait je voudrais obtenir une reprsentation de l'objet sous forme XML, sans avoir a faire de mapping.


Le tutorial de XStream indique qu'il est compatible avec tout objet sans besoin de dfinir un quelconque mapping.
 ::idea::

----------


## Kh4iN3

En effet je confirme pas besoin de mapping pour utiliser XStream.

a+

----------


## netdoor.fr

Pour l'instant, cel marche, mon instance JPcap de Packet est compatible avec XStream, j'obtiens le code xml sans erreur...le test dans quelques minutes pour voir si le paquet est correctement reconstruit  l'autre bout du tunnel Tcp. Si XStream fait bien son boulot, je devrais avoir un objet identique. :0) Merci

----------


## netdoor.fr

Il faut que cela soit plus rapide, nous perdons la synchro entre les 2 serveurs a chaque bout du tunnel parce que la serialisation en xml met trop de temps avec XStream, que puis je utiliser de ultra rapide? quitte a faire une map xml pour les objets...

Merci bcp

----------

