2 Replies Latest reply on Jan 10, 2019 5:01 AM by ctomc

    Failed to link class in rt.jar

    jasipher

      I'm getting this error trying to run BIRT in WildFly 15.0.0.FInal

      Caused by: java.lang.NoClassDefFoundError: Failed to link org/eclipse/birt/report/engine/content/IStyle (Module "deployment.s112a_scereports.war" from Service Module Loader): org/w3c/dom/css/CSSStyleDeclaration

         at java.lang.ClassLoader.defineClass1(Native Method)

         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)

         at java.lang.ClassLoader.defineClass(ClassLoader.java:839)

         at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:424)

         at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:519)

         at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:339)

         at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:126)

         at org.jboss.modules.Module.loadModuleClass(Module.java:731)

         at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:247)

         at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)

         at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

         at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)

         at org.eclipse.birt.report.engine.parser.ReportParser.parse(ReportParser.java:177)

         at org.eclipse.birt.report.engine.executor.ExecutionContext.getReport(ExecutionContext.java:2214)

         at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:234)

       

      This works in WildFly 10.1 but not in WildFly 15. I assume I need to make an adjustment in jboss-deployment-structure.xml and/or one of the system module.xml files, but I can't figure out the right combination. I've added a dependency on javax.api to jboss-deployment-structure.xml and I can see that the javax.api module exports org/w3c/dom/css.

       

      The IStyle interface declaration looks like this:

      public abstract interface org.eclipse.birt.report.engine.content.IStyle extends org.w3c.dom.css.CSSStyleDeclaration, org.eclipse.birt.report.engine.css.engine.StyleConstants, org.w3c.dom.css.CSS2Properties, org.eclipse.birt.report.engine.css.engine.value.css.CSSConstants, org.eclipse.birt.report.engine.css.engine.value.css.CSSValueConstants, org.eclipse.birt.report.engine.css.engine.value.birt.BIRTConstants, org.eclipse.birt.report.engine.css.engine.value.birt.BIRTValueConstants {

       

      I suppose it could be that some of the extended interfaces are in the war file's internal jar files and some are in rt.jar. None of the org.w3c.* classes are in the war file.

       

      Any help/suggestions are appreciated.