IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Sérialisation] Compatibilité entre jre (versions mineures / majeures)


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut [Sérialisation] Compatibilité entre jre (versions mineures / majeures)
    Bonjour,

    le problème n'est pas forcement commun.
    L'idée est d'échanger entre un serveur d'application et une applet des grappes d'objets sérialisés.

    Si le serveur d'application tournera en Java 5, rien n'est moins sur pour le jre sur le poste client.
    Mais déjà au dela de compatibilités entre par exemple Java 1.4 et Java 5 (je suis plutôt pessimiste), peut-on avoir une garantie que les objets sérialisés pourront être échangés entre un jdk 1.5 et un jre 1.5 avec des différences de version mineure ?
    Mes premiers tests m'ont permis de constater que ca semble possible notamment lorsque le jre 1.5_x >= jdk 1.5_y. Il me reste à examiner la situation inverse.

    Y'a-t-il des gens ayant déjà été confrontés à ce genre de problématique ?
    Cette contrainte entre jdk serveur et jre client n'est elle pas trop forte et dangereuse ?

    P.S. : je précise que la solution de la sérialisation est à l'origine due à une faible bande passante réseau, des objets complexes issus de fichiers xml (forcement plus volumineux que le flux sérialisé), et une contrainte sur la taille de l'applet (désérialiser le flux xml dans l'applet impliquerait d'embarquer trop de librairies)

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Est-ce que tu as bien défini le serialVersionUID de tes classes sérializables ? Car si c'est bien le cas il me semble qu'il de devrait pas y avoir de problème de version...

    a++

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Salut,

    j'ai pu tester avec une version mineure inférieure, mais j'ai du passer sur autre chose.
    Mais effectivement le serialVersionUID peut être une piste car les objets en questions sont générés sans serialVersionUID.

    On verra ca la semaine prochaine

  4. #4
    Membre éprouvé Avatar de Celeborn
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 133
    Par défaut
    Salut,

    Je ne suis pas sur de moi, mais je pense que la version de la jre n'influe pas sur la sérialisation. En effet du moment que le serialVersionUID est identique et que les .class n'ont pas bougé, cela dépend uniquement de l'interface Serializable présente depuis jdk 1.1.

  5. #5
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Salut,

    Ca roule avec le dernier JRE 1.4
    Mes doutes portaient plus sur l'enchaînement de plusieurs problématiques, des fois que ca serve :
    - mes objets sont des objets générés par JAXB 2.0, donc avec des annotations et des generics
    - ils sont donc gérés en Java 5 côté serveur, puis sérialisés à la demande sur sollicitation d'une applet

    J'ai fait un jar de mes objets avec l'option -target à jsr14 ("unsupported and undocumented" in the text) pour pouvoir les référencer dans mon projet Applet en Java 1.4 (il faut évidemment être prudent et ne pas abuser des fonctionnalités de Java 5, ici seulement des annotations et des generics, pour info : http://forum.java.sun.com/thread.jsp...2017&trange=15 , une autre piste non explorée : http://retroweaver.sourceforge.net ).
    Lorsque je crée mon jar d'Applet, je suis obligé d'avoir les libs Jaxb dans le classpath sinon il rale à cause d'annotations (ca me surprend un peu qu'il voit les annotations).

    Dans ma Webapp j'ai mes jars fait en Java 5 dans WEB-INF, et la lib pour l'applet est celle générée avec target jsr14.

    Côté Jaxb, il faut aussi faire attention à ce que ca ne soit pas trop complexe, notamment que tout attribut soit typé par des types élémentaires ou des classes elles mêmes n'ayant que des types élémentaires (j'avais par exemple oublié de typer un attribut dans mon xsd et ca avait donc généré un attribut "Object" qui était géré par des éléments DOM, donc ClassNotFoundException côté Applet. Par contre les Object en regard de liens de type IDREF dans le xsd ne semblent pas poser de problème mais mon test n'est pas forcement complet).

    Voila voila.

    Merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. compatibilité entre les version 2000-2003-2007
    Par lenobm dans le forum Access
    Réponses: 2
    Dernier message: 01/04/2009, 18h52
  2. Compatibilité entre deux versions de Borland C++ Builder
    Par Takusen dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/06/2007, 11h31
  3. Compatibilité entre les versions
    Par FloMo dans le forum Général Python
    Réponses: 7
    Dernier message: 30/04/2007, 15h45
  4. Compatibilité entre les versions de SQL SERVER
    Par HYQST dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/06/2006, 15h54
  5. [VS 2005 RTM][CF 2.0] Compatibilité entre les versions
    Par le-roy_a dans le forum Visual Studio
    Réponses: 3
    Dernier message: 09/11/2005, 16h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo