首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XmlBeans生成的类时出错

使用XmlBeans生成的类时出错
EN

Stack Overflow用户
提问于 2011-12-15 18:07:31
回答 6查看 35.8K关注 0票数 12

我使用XMLBeans从一个xsd文件生成了类,并将它们打包到一个jar文件中。然后,我将该jar添加到eclipse中的项目类路径中,一切都可以正常编译和运行。我用Maven从我的项目中构建了一个独立的jar文件,并且构建再次成功,但是当我尝试运行它时,我得到了这个错误:

代码语言:javascript
复制
 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中?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-12-15 18:33:06

在生成的jar文件中,确保包含从xmlbeans生成的类文件。

在堆栈跟踪中:

代码语言:javascript
复制
Caused by: java.lang.ClassNotFoundException: schemaorg_apache_xmlbeans.system.s8
B21CFFFCFED0B2438C2585C61F113F7.TypeSystemHolder

它表明,在编译期间,所需的类文件在类路径中,但是在您构建的jar中,这些文件丢失了。

检查您的jar文件,查看是否存在这些类。

编辑:根据重新表述的问题

要在Maven中构建带有依赖项的jar,请使用jar-with-dependencies选项example

两个非常好的参考:

  1. http://www.sonatype.com/books/mvnref-book/reference/assemblies-sect-basics.html
  2. http://thomassundberg.wordpress.com/2011/03/05/create-an-executable-jar-from-maven/

在第二个示例中,如果您的jar不是可执行的jar,则不需要主类

票数 5
EN

Stack Overflow用户

发布于 2013-12-16 13:59:29

在执行资源时,将创建一个名为WSDL2Java的目录。将资源下的schemaorg_apache_xmlbeans复制到项目的类路径中。这应该是修复方法。

票数 11
EN

Stack Overflow用户

发布于 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)文件夹中

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8518301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档