我使用XMLBeans从一个xsd文件生成了类,并将它们打包到一个jar文件中。然后,我将该jar添加到eclipse中的项目类路径中,一切都可以正常编译和运行。我用Maven从我的项目中构建了一个独立的jar文件,并且构建再次成功,但是当我尝试运行它时,我得到了这个错误:
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缺少的类在我用XmlBeans创建的jar中,我如何告诉maven将它添加到它从我的项目创建的jar中?
发布于 2011-12-15 18:33:06
在生成的jar文件中,确保包含从xmlbeans生成的类文件。
在堆栈跟踪中:
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s8
B21CFFFCFED0B2438C2585C61F113F7.TypeSystemHolder它表明,在编译期间,所需的类文件在类路径中,但是在您构建的jar中,这些文件丢失了。
检查您的jar文件,查看是否存在这些类。
编辑:根据重新表述的问题
要在Maven中构建带有依赖项的jar,请使用jar-with-dependencies选项example
两个非常好的参考:
在第二个示例中,如果您的jar不是可执行的jar,则不需要主类
发布于 2013-12-16 13:59:29
在执行资源时,将创建一个名为WSDL2Java的目录。将资源下的schemaorg_apache_xmlbeans复制到项目的类路径中。这应该是修复方法。
发布于 2013-01-16 21:15:59
当您遇到此类错误时,不会将WSDL2Java生成的TypeSystemHolder.class放在您的类路径中,以避免此错误。
请从"resource/schemaorg_apache_xmlbeans/system/s68C41DB812F52C975439BA10FE4FEE54“文件夹复制TypeSystemHolder.class。
并将TypeSystemHolder.class文件粘贴到类路径文件夹(build/classes/schemaorg_apache_xmlbeans/system/s68C41DB812F52C975439BA10FE4FEE54)文件夹中
https://stackoverflow.com/questions/8518301
复制相似问题