Ho generato classi con XMLBeans da un file xsd e li ho imballati in un file jar. poi ho aggiunto quel jar al classpath del progetto in eclipse e tutto si compila e gira bene. Ho costruito un file jar stand-alone dal mio progetto con Maven e di nuovo la generazione viene eseguita correttamente, ma quando provo eseguirlo ottengo questo errore:Errore durante l'utilizzo delle classi generate da XmlBeans
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.oblicore.oblisync.resolutions.TestsDocument$Factory.parse(TestsDo
cument.java:126)
at com.oblicore.oblisync.handlers.TransferEntitiesHandler.getResolution(
TransferEntitiesHandler.java:117)
at com.oblicore.oblisync.handlers.TransferEntitiesHandler.resolveConflic
ts(TransferEntitiesHandler.java:103)
at com.oblicore.oblisync.main.Orchestrator.run(Orchestrator.java:107)
at com.oblicore.oblisync.main.Orchestrator.main(Orchestrator.java:58)
Caused by: java.lang.RuntimeException: Cannot load SchemaTypeSystem. Unable to l
oad class with name schemaorg_apache_xmlbeans.system.s8B21CFFFCFED0B2438C2585C61
F113F7.TypeSystemHolder. Make sure the generated binary files are on the classpa
th.
at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:7
83)
at com.oblicore.oblisync.resolutions.TestsDocument.<clinit>(TestsDocumen
t.java:19)
... 5 more
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s8
B21CFFFCFED0B2438C2585C61F113F7.TypeSystemHolder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.apache.xmlbeans.XmlBeans.typeSystemForClassLoader(XmlBeans.java:7
69)
... 6 more
La classe mancante è nel vaso che ho creato con XmlBeans, come faccio a dire a Maven di aggiungerlo al barattolo che crea dal mio progetto?
Ho rifasato la mia domanda per spiegare meglio di cosa ho bisogno – Tomer
Per la costruzione di jar con dipendenze è possibile utilizzare il plugin maven-assembly in cui è necessario specificare quali jar devono essere inclusi, sample pom può essere trovato qui http: // maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html – mprabhat
Quando si crea un progetto JAR con Maven, il JAR contiene solo le classi di quel progetto. Non contiene i JAR necessari per costruirlo, né i JAR che saranno necessari per l'esecuzione (principalmente, ma non sempre gli stessi). Se impacchettate il vostro progetto come WAR o EAR, però, Maven avrebbe incluso tutti i JAR che i vostri elenchi POM come dipendenze di runtime. Se non hai bisogno di WAR o EAR, allora il suggerimento del plugin assembly sopra è più semplice (usa l'opzione jar-with-dependencies). –