链接错误:Loader Constraint违规:以前为名称为“org / w3c / dom / Type Info”的其他类型启动加载

时间:2013-06-27 10:09:30

标签: grails-2.0 linkageerror

我正在使用java1.6,grails 2.0。我想处理Docx文档。为此,我添加了jar poi-ooxml-3.5-FINAL.jar,ooxml-schemas-1.1.jar. 但是在代码行this.document = new XWPFDocument(buffInputStream);中 我得到以下错误

Class    java.lang.ClassNotFoundException
Message    org.apache.xmlbeans.XmlOptions

我正在尝试添加xmlbeans-2.5.0.jar or xbean-2.1.0.jar.

的罐子

我收到以下错误

 | Error Fatal error during compilation
     org.apache.tools.ant.BuildException: java .lang.LinkageError: loader
     constraint violation: loader (instance of bootloader)
 previously initiated loading for a different type with name "org/w3c/dom/Type Info" (Use --stacktrace to see the full trace)

如果我验证我的Jre系统库,则rt.jar包含此TypeInfo类。怎么样  解决这个问题?请指教。谢谢。

您好, 我尝试删除库并使用jarscan来搜索此类。但我没有找到任何地方。请帮忙弄明白我怎样才能找到这门课程的位置以及如何解决这个问题

1 个答案:

答案 0 :(得分:1)

我遇到了JMX MBeanServer类。 Groovy正在使用其类加载器加载其中一个,JVM也是如此。 在你的情况下,听起来像rt.jar中的TypeInfo类就好了,但是另一个类加载器再次从那个jar(或另一个jar)加载它。 使用“-verbose:class”运行JRE显示了双重加载行为。然后我将违规的jar从我的类路径中移出,并且它与Groovy加载的那个一起工作得很好。

我建议将rt.jar移出类路径,或者如果你需要rt.jar中的其他类,请尝试解压缩并在没有Type类的情况下重新调整它。这样,类加载器将被强制使用xmlbeans-2.5.0.jar或xbean-2.1.0.jar中的类。