Failed to link class in rt.jar
jasipher Jan 8, 2019 4:14 PMI'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.