Portál AbcLinuxu, 7. května 2025 22:02

Dotaz: NetBeans platform (java) a Batik SVG toolkit (asi ClassLoader problem)

Karry avatar 20.2.2009 18:25 Karry | skóre: 10
NetBeans platform (java) a Batik SVG toolkit (asi ClassLoader problem)
Přečteno: 657×
Odpovědět | Admin
Zdravím. Píšu aplikaci postavenou na NetBeans platformě. Potřeboval bych tam na jednom panelu zobrazit SVG obrázek pomocí knihovny Batik (podle mě nejelegantnější řešení jak v Javě kreslit 2D).

K zobrazení používám tento kód:
     String parserClassName = XMLResourceDescriptor.getXMLParserClassName();
     SAXSVGDocumentFactory f = new SAXSVGDocumentFactory(parserClassName);

     // tento radek mi vyvolava vyjimku
     doc = f.createDocument(parserClassName, svgInputStream); 

     jSVGCanvas1.setDocumentState(JSVGCanvas.ALWAYS_DYNAMIC); 
     jSVGCanvas1.setDocument( doc );

     svgInputStream.close();
V samostatné Java aplikaci tento kód funguje krásně, ale v NetBeans platformě dostanu:
java.lang.LinkageError: loader constraint violation: 
loader (instance of org/netbeans/StandardModule$OneModuleClassLoader) 
previously initiated loading for a different type with name "org/w3c/dom/NamedNodeMap"
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at org.netbeans.JarClassLoader.doLoadClass(JarClassLoader.java:243)
        at org.netbeans.ProxyClassLoader.selfLoadClass(ProxyClassLoader.java:254)
        ...
Netušíte někdo jak to vyřešit?

Kdyby jste někdo měli čas se v tom pošťourat, vytvořil jsem jednoduchá dema demostrující tuto chybu:

http://www.karry.wz.cz/download/BatikDemos.zip

Obsah zipu: BatikDemo - samostatná Java appka zobrazující SVG obrázek pomocí Batik BatikWrapper - NetBeans wrapper modul pro Batik knihovny SVGView - NetBeans modul s jednou TopComponentou, která by měla zobrazovat obrázek NetBeansBatikDemo - zapouzdřující modul pro předchozí dva

Budu vděčný za jakýkoliv návrh. Už se s tím pářu dva dny!
unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Karry avatar 22.2.2009 06:04 Karry | skóre: 10
Rozbalit Rozbalit vše vyřešeno
Odpovědět | | Sbalit | Link | Blokovat | Admin
Problém se mi konečně podařilo vyřešit... Měl jsem konflikt v knihovně xml-apis.jar, jednu jsem vkládal v Batik wrapperu a druhá se načítala ze standartní jdk knihovny...
unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.