"Failed to link" error during drools rule compilation and application deployment

Solution Verified - Updated -

Issue

  • I have a web application (MyWeb.war) containing some drools rules and I get errors like this on deployment:
15:14:56,789 WARN  [org.jboss.modules] (http-localhost/127.0.0.1:8080-1) Failed to define class com.example.classType in Module "deployment.MyWeb.war:main" from Service Module Loader: java.lang.LinkageError: Failed to link com/example/classType (Module "deployment.MyWeb.war:main" from Service Module Loader)
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487) [jboss-modules.jar:1.3.5.Final-redhat-1]
......
    at java.lang.ClassLoader.loadClass(ClassLoader.java:411) [rt.jar:1.8.0_72]
    at org.drools.core.common.ProjectClassLoader.internalLoadClass(ProjectClassLoader.java:142) [drools-core-6.0.3-redhat-6.jar:6.0.3-redhat-6]
    at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:125) [drools-core-6.0.3-redhat-6.jar:6.0.3-redhat-6]
......
    at org.mvel2.ParserConfiguration.checkForDynamicImport(ParserConfiguration.java:163) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.ParserConfiguration.hasImport(ParserConfiguration.java:191) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.ParserContext.hasImport(ParserContext.java:360) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.compiler.AbstractParser.createPropertyToken(AbstractParser.java:1342) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:846) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:128) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.MVEL.analysisCompile(MVEL.java:670) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.mvel2.MVEL.analysisCompile(MVEL.java:674) [mvel2-2.1.9.Final-redhat-13.jar:2.1.9.Final-redhat-13]
    at org.drools.compiler.rule.builder.PatternBuilder.setInputs(PatternBuilder.java:1124) [drools-compiler-6.0.3-redhat-6.jar:6.0.3-redhat-6]
    at org.drools.compiler.rule.builder.PatternBuilder.getExprBindings(PatternBuilder.java:816) [drools-compiler-6.0.3-redhat-6.jar:6.0.3-redhat-6]
    at org.drools.compiler.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:803) [drools-compiler-6.0.3-redhat-6.jar:6.0.3-redhat-6]
    at org.drools.compiler.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:732) [drools-compiler-6.0.3-redhat-6.jar:6.0.3-redhat-6]
......
Caused by: java.lang.NoClassDefFoundError: com/example/classType (wrong name: com/example/ClassType)
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_72]
    at java.lang.ClassLoader.defineClass(ClassLoader.java:760) [rt.jar:1.8.0_72]
    at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.5.Final-redhat-1]
    at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules.jar:1.3.5.Final-redhat-1]
    ... 65 more
......
15:14:57,254 ERROR [org.drools.compiler.kie.builder.impl.AbstractKieModule] (http-localhost/127.0.0.1:8080-1) Unable to build KieBaseModel: modelname
Unable to Analyse Expression classType == ClassType.ABC:
[Error: Failed to link com/example/classType (Module "deployment.MyWeb.war:main" from Service Module Loader)]
[Near : {... classType == ClassType.ABC ....}]
             ^
[Line: 8, Column: 9] : [Rule name='Rule Name']

Environment

  • Red Hat JBoss BRMS
    • 6.x
  • Red Hat JBoss BPM Suite (BPMS)
    • 6.x
  • Windows or Mac

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content