# Java > Gnral Java > Persistance des donnes >  [JAXB] Generation dynamique des classes

## Invit

Bonjour  tous,

J'ai besoin d'utiliser JAXB pour gnrer certaines classes de mon application. *Mais* cette gnration doit se faire pendant l'excution de mon application. En plus de tous les point que sa soulve (classloader, appel de mthodes, ..), je ne sais dj pas comment gnrer  la vole les _.java_ depuis les fichiers _.xsd_. 
J'ai bien sur la possibilit de faire un appel  la commande '_xjc_' mais il doit surement y avoir une classe paremettant de le faire sans appel  une commande extrieure. L'un d'entre vous sais t'il m'aiguiller ?


Merci beaucoup.

----------


## darkxan

Il m'a fallut 5 secondes pour trouver la rponse. Tu ouvres xjc, tu regardes le jar et tu regardes le manifest. Main-Class: com.sun.tools.xjc.XJCFacade

Aprs grer les .java a semble plus compliqu.

----------


## Invit

Oui, j'ai fais le mme mais je reoit l'exception suivante :



> parsing a schema...
> compiling a schema...
> java.lang.IllegalArgumentException: Expected class javax.xml.bind.annotation.XmlAccessType but found class javax.xml.bind.annotation.AccessType
> 	at com.sun.codemodel.TypedAnnotationWriter.checkType(TypedAnnotationWriter.java:187)
> 	at com.sun.codemodel.TypedAnnotationWriter.invoke(TypedAnnotationWriter.java:101)
> 	at $Proxy21.value(Unknown Source)
> 	at com.sun.tools.xjc.generator.bean.ImplStructureStrategy$1.createClasses(ImplStructureStrategy.java:46)
> 	at com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassDef(BeanGenerator.java:371)
> 	at com.sun.tools.xjc.generator.bean.BeanGenerator.getClazz(BeanGenerator.java:403)
> ...


Alors que la classe '_AccessType_' n'est pas prsente dans mon le build-path de mon projet...
Aprs de longues recherches qui ne m'ont pas aid, je me suis permis de poser la question sur ce forum en me disant qu'il y avait peut-tre une autre solution

----------


## darkxan

Il n'y a aucune raison pour que cela ne fonctionne pas si a marche  l'extrieur. Tu arrives bien  compiler normalement avec xjc ?

Regardes peut tre du ct de ton classpath :
jaxb-api.jar jaxb-impl.jar jsr173_1.0_api.jar activation.jar

----------


## Invit

J'ai dj fais tout cela. Je ne comprend vraiment pas pourquoi cel ne marche pas.

*Edit 1 :* Il y  un dbut de solution; a marche avec un jdk 1.5. Moi je travaille en 1.6. Reste  trouver comment le faire fonctionner avec une 1.6.
Ce qui est "bizarre" c'est que _xjc_ compile sans erreurs en ligne de commande et que la version installe de Java est une 1.6.

*Edit 2 :* En ralit lorsque l'on installe un jdk, il y  une version de xjc prsente dans le dossier '_bin_' du jdk. Etant donn que mon path rfrence ce dossier en plus de '_jwsdp-x.y\bin_', lorsque je lenais xjc depuis une ligne de commande le premier  tre excut tait celui du jdk.
Le problme est que la version de xjc prsente dans le jdk est un exe, je ne sais donc pas reprendre _jaxb-xjc.jar_..
Je connais donc la cause de mes soucis mais pas la solution.

----------


## Invit

Bonjour, 

Pour ne pas perdre trop de temps  chercher ce qui ne vas pas (d'aprs certains c'est "normal, il n'y  pas de solutions" ou "il y  un des .jar qui doit-tre adapt  la 1.6, faut trouver lequel"), j'ai cod mon propre compilateur JAXB qui fais un appel systme  la commande "_xjc_".

C'est pas le top mais a marche..

----------


## oneLng

Bonjour, 

Ce lien (en anglais... hlaas) rpond peut-tre au mieux  ce problme : 

http://forums.sun.com/thread.jspa?messageID=10189811

----------

