Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Persistance
Persistance Forum d'entraide pour la persistance en Java : base de donnée, xml, mapping orienté objet, ... Posez vos questions sur iBatis, JDO, XmlBeans, Castor, JAXB, XStream, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/09/2012, 16h32   #1
SML Abrams
Invité de passage
 
SMAIL SMAIL
Inscription : octobre 2009
Messages : 3
Détails du profil
Informations personnelles :
Nom : SMAIL SMAIL

Informations forums :
Inscription : octobre 2009
Messages : 3
Points : 0
Points : 0
Par défaut JAXB sous Unix AIX

Bonjour tous le monde,

Je rencontre une exception de type java.lang.IncompatibleClassChangeError lorsque j’exécute mon script ANT qui permet de générer des fichiers XML en utilisant l'API JAXB (Marshalling/Unmarshilling) dans le serveur de déploiement (serveur AIX).
  • Lorsque j’exécute le script ANT dans l'environnement de développement (Windows XP), il marche bien et il génère les fichiers XML.
  • J'utilise dans l'environnement de développement la même JDK (jdk1.5.0) qui est installée dans le serveur de déploiement (serveur AIX)

NB : La génération s'effecute bien par fois (raaaaaaaaarement) sur le serveur AIX.

voici la trace :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
 
........................./build.xml:176: java.lang.IncompatibleClassChangeError
        at com.sun.xml.bind.v2.model.impl.ElementPropertyInfoImpl$1.size(ElementPropertyInfoImpl.java:82)
        at java.util.AbstractList$Itr.hasNext(AbstractList.java:431)
        at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:260)
        at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:104)
        at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:85)
        at com.sun.xml.bind.v2.model.impl.ModelBuilder.getClassInfo(ModelBuilder.java:214)
        at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:99)
        at com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder.getClassInfo(RuntimeModelBuilder.java:85)
        at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:320)
        at com.sun.xml.bind.v2.model.impl.RegistryInfoImpl.<init>(RegistryInfoImpl.java:103)
        at com.sun.xml.bind.v2.model.impl.ModelBuilder.addRegistry(ModelBuilder.java:362)
        at com.sun.xml.bind.v2.model.impl.ModelBuilder.getTypeInfo(ModelBuilder.java:332)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:460)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:298)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:141)
        at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1163)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:145)
        at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:236)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:186)
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:146)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:348)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:446)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:409)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:313)
        at gen.utils.Util.unmarshalling(Unknown Source)
        at gen.utils.Util.mvtConfig(Unknown Source)
        at gen.utils.Util.mvtGenConfig(Unknown Source)
        at gen.start.StartGen.mvtGeneration(Unknown Source)
        at gen.start.StartGen.start(Unknown Source)
        at gen.start.StartGen.main(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
        at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
        at org.apache.tools.ant.taskdefs.Java.run(Java.java:771)
        at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:221)
        at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:135)
        at org.apache.tools.ant.taskdefs.Java.execute(Java.java:108)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:615)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
        at org.apache.tools.ant.Main.runBuild(Main.java:809)
        at org.apache.tools.ant.Main.startAnt(Main.java:217)
        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

Aider moi SVP .
SML Abrams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2012, 11h04   #2
NicoL__
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 390
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 390
Points : 559
Points : 559
Bonjour,

C'es la même JDK sous AIX que sous Windows XP ? Pas uniquement les versions, AIX c'est IBM et IBM a sa propre implémentation de la JDK.
Il faut peut-être recompiler le tout avec la JDK d'IBM.
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2012, 17h19   #3
SML Abrams
Invité de passage
 
SMAIL SMAIL
Inscription : octobre 2009
Messages : 3
Détails du profil
Informations personnelles :
Nom : SMAIL SMAIL

Informations forums :
Inscription : octobre 2009
Messages : 3
Points : 0
Points : 0
Merci, oui c'est vraiment la solution envisagée. Mais le problème c'est que l'environnement du DEV est sur Windows, et que je trouve pas un JDK1.5 d'IBM qui tourne sur windows ca existe que pour Linux.

http://blogs.msdn.com/b/dotnetintero...r-windows.aspx
SML Abrams est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2012, 09h43   #4
NicoL__
Membre expérimenté
 
Avatar de NicoL__
 
Homme Nicolas
Inscription : janvier 2011
Messages : 390
Détails du profil
Informations personnelles :
Nom : Homme Nicolas
Localisation : France

Informations forums :
Inscription : janvier 2011
Messages : 390
Points : 559
Points : 559
Effectivement IBM ne semble distribuer qu'un plugin eclipse pour Windows :
http://www.ibm.com/developerworks/ja....html#download

Une technique serait de savoir quelle classe pose problème, trouver son équivalent dans la JRE IBM et charger cette classe en fonction d'une configuration. Cela se fait bien en configurant le nom complet de la classe dans un fichier properties.
Et une piste pour JAXB est qu'IBM a son implémentation :
com.ibm.xml.xlxp2.jaxb.JAXBContextImpl

Il faut probablement donc passer cela au context jaxb
NicoL__ est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h51.


 
 
 
 
Partenaires

Hébergement Web