Je reçois une exception de punition lors de l'exécution du code qui dépend des cours de Xmlbeans générés. Je ne peux pas comprendre si c'est le cas:
La version Xbean.jar est la même dans l'environnement de construction et d'exécution. Quelqu'un a vu cela avant ou avoir des idées? P>
Merci. P>
...snip...
Caused by: java.lang.RuntimeException: Could not instantiate SchemaTypeSystemImpl (java.lang.reflect.InvocationTargetException): is the version of xbean.jar correct?
at schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.loadTypeSystem(Unknown Source)
at schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.TypeSystemHolder.(Unknown Source)
... 38 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
... 40 more
Caused by: org.apache.xmlbeans.SchemaTypeLoaderException: XML-BEANS compiled schema: Could not locate compiled schema resource schemaorg_apache_xmlbeans/system/s2B8331230CBD98F4933B0B025B6BF726/index.xsb (schemaorg_apache_xmlbeans.system.s2B8331230CBD98F4933B0B025B6BF726.index) - code 0
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl$XsbReader.(SchemaTypeSystemImpl.java:1504)
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.initFromHeader(SchemaTypeSystemImpl.java:260)
at org.apache.xmlbeans.impl.schema.SchemaTypeSystemImpl.(SchemaTypeSystemImpl.java:183)
... 44 more
...snip...
4 Réponses :
Je n'ai jamais utilisé la bibliothèque avant que je puisse deviner ce qui se passe. Avec ce qualificatif (c'est-à-dire que je fais juste cela, mais cela fait 7 heures et personne d'autre n'a rien fait) ... P>
indiquant l'évidence: quelque chose a été compilé quelque part et ne peut pas être chargé. Je ne pense pas que ce quelque chose soit dans le fichier JAR; Je suppose que c'est l'une de vos ressources qui ont été compilées / mis en cache à un emplacement. P>
Je devinerais soit: p>
Avez-vous changé quelque chose (par exemple la version de schéma?) Entre la compilation et le chargement / en cours d'exécution? P>
Pouvez-vous supprimer la version compilée et recompiler puis essayer un rechargement? p>
Pouvez-vous localiser la version compilée dans le système de fichiers? p>
Pour ce faire, vous pouvez essayer
p>
Grep "S2B8331230CBD98F4933B0B025B6BF726" "" " p>
de certains répertoires appropriés. P>
Pouvez-vous faire un MD5 sur la classe / ressource causant des problèmes dans les environnements de compilation et d'exécution? Correspondent-ils? P>
J'espère que quelque chose de là aide ou déclenche une pensée. P>
J'ai vu ce problème souvent lorsqu'il y avait un script (fourmi, maven, ...) qui gérerait la compilation de Xmlbeans et qu'un autre mécanisme a été utilisé pour la compilation et l'exécution du reste du code. Parfois, une pièce supprimera les fichiers générés que Xmlbeans recherchent dans votre trace de pile, mais laissera les fichiers Java Xmlbeans générés, de sorte que tout sera compilé et regarde bien. p>
J'ai également vu cela lors de l'utilisation de l'option pour émettre les fichiers source, mais pas les fichiers de classe. Les fichiers source non Java ne sont générés que directement dans le dossier de classe ou le fichier JAR généré par Xmlbeans. p>
Ces fichiers de classe sont générés dans le répertoire Ressources / Schemaorg_apache_xmlbeans. J'ai vu le comportement de Xmlbeans où le script ANT généré n'a pas réussi à inclure ce répertoire dans le pot qu'il crée (peut-être à cause d'un bogue?) Vérifiez qu'il a été inclus dans le pot. Vous pouvez ré-jar manuellement ou vérifier vos options de commande de génération de code. P>
La réponse de John était une bonne idée pour moi. J'ai généré des classes Java avec Xmlbeans et copié les fichiers source de la "NONAMESPACE" manuellement dans mon projet pour les modifier. Malheureusement, je n'ai pas reconnu qu'il y avait également généré des fichiers de classe dans le dossier "schemaorg_apache_xmlbeans" et ne les copie pas.
Après avoir basculé sur l'utilisation du fichier jar généré, tout fonctionnait bien pour moi. P>
J'ai utilisé Wsdltojava pour créer du code de savon. Je n'ai pas remarqué qu'il a également créé un dossier "ressources" que je n'ai pas copié dans mon projet.