Как бороться с LinkageErrors в Java?

Разрабатывая Java-приложение, основанное на XML, я недавно столкнулся с интересной проблемой в Ubuntu Linux.

Мое приложение, используяПлагин Java Framework, кажется, не может преобразоватьdom4jXML-документ дляБатик-х реализация спецификации SVG.

На консоли я узнаю, что происходит ошибка:

Exception in thread "AWT-EventQueue-0" java.lang.LinkageError: loader constraint violation in interface itable initialization: when resolving method "org.apache.batik.dom.svg.SVGOMDocument.createAttribute(Ljava/lang/String;)Lorg/w3c/dom/Attr;" the class loader (instance of org/java/plugin/standard/StandardPluginClassLoader) of the current class, org/apache/batik/dom/svg/SVGOMDocument, and the class loader (instance of <bootloader>) for interface org/w3c/dom/Document have different Class objects for the type org/w3c/dom/Attr used in the signature
    at org.apache.batik.dom.svg.SVGDOMImplementation.createDocument(SVGDOMImplementation.java:149)
    at org.dom4j.io.DOMWriter.createDomDocument(DOMWriter.java:361)
    at org.dom4j.io.DOMWriter.write(DOMWriter.java:138)

Я полагаю, что проблема вызвана конфликтом между исходным загрузчиком классов из JVM и загрузчиком классов, развернутым платформой плагинов.

Насколько мне известно, невозможно указать загрузчик классов для используемой платформы. Возможно, его можно взломать, но я бы предпочел менее агрессивный подход к решению этой проблемы, поскольку (по какой-либо причине) это происходит только в системах Linux.

Кто-нибудь из вас сталкивался с такой проблемой и знает, как ее исправить или, по крайней мере, понять суть проблемы?

Ответы на вопрос(6)

Ваш ответ на вопрос