[rules-users] ClassNotFound exception running brms example (newbie)

Martin Fuzzey mfuzzey at neuf.fr
Sun Sep 30 15:48:08 EDT 2007


Hi,

I am trying to run the insurance example with the brms
after replacing the client mvel jar with the one used by the brms web
app as mentionned on this list I get this exeception (full stacktrace below)

java.lang.ClassNotFoundException:
org.drools.rule.builder.dialect.mvel.MVELDialect$ModifyInterceptor

adding the drools-compiler-4.0.1.jar to the client classpath fixes this
but I thought the rules were supposed to be compiled by the brms. Indeed
the documentation says :

The rule agent is a component which is embedded in the core runtime of
the rules engine. To use this, you don't need any extra components. In
fact, if you are using the BRMS, your application should only need to
include the drools-core.jar in its classpath, and no other rules
specific dependencies.

so am I misunderstanding something or is this a bug?

Thanks,

Martin Fuzzey


RuleAgent(insuranceconfig) INFO (Sun Sep 30 14:02:33 CEST 2007):
Configuring with newInstance=true, secondsToRefresh=30
RuleAgent(insuranceconfig) INFO (Sun Sep 30 14:02:33 CEST 2007):
Configuring package provider : URLScanner monitoring URLs:
http://localhost:8080/drools-jbrms/org.drools.brms.JBRMS/package/org.acme.insurance/MF1
with local cache dir of /home/martin/tmp
RuleAgent(insuranceconfig) EXCEPTION (Sun Sep 30 14:02:34 CEST 2007):
org.drools.rule.builder.dialect.mvel.MVELDialect$ModifyInterceptor.
Stack trace should follow.
java.lang.ClassNotFoundException:
org.drools.rule.builder.dialect.mvel.MVELDialect$ModifyInterceptor
         at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
         at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Class.java:247)
         at
java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
         at
org.drools.common.DroolsObjectInputStream.resolveClass(DroolsObjectInputStream.java:74)
         at
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
         at
java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at java.util.HashMap.readObject(HashMap.java:1029)
         at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
         at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at
java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1945)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1869)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at java.util.HashMap.readObject(HashMap.java:1029)
         at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
         at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso
rImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at
java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
         at
java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1846)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at org.drools.rule.Package.readExternal(Package.java:189)
         at
java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1792)
         at
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1751)
         at
java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
         at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
         at
org.drools.agent.HttpClientImpl.fetchPackage(HttpClientImpl.java:54)
         at org.drools.agent.URLScanner.readPackage(URLScanner.java:137)
         at org.drools.agent.URLScanner.getChangeSet(URLScanner.java:109)
         at
org.drools.agent.URLScanner.loadPackageChanges(URLScanner.java:88)
         at org.drools.agent.RuleAgent.checkForChanges(RuleAgent.java:327)
         at org.drools.agent.RuleAgent.refreshRuleBase(RuleAgent.java:295)
         at org.drools.agent.RuleAgent.configure(RuleAgent.java:281)
         at org.drools.agent.RuleAgent.init(RuleAgent.java:205)
         at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:173)
         at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:145)
         at org.drools.agent.RuleAgent.newRuleAgent(RuleAgent.java:213)
         at
org.acme.insurance.launcher.InsuranceBusiness.loadRuleBase(InsuranceBusiness.java:26)
         at
org.acme.insurance.launcher.InsuranceBusiness.executeExample(InsuranceBusiness.java:14)
         at org.acme.insurance.launcher.MainClass.main(MainClass.java:13)
RuleAgent(insuranceconfig) WARNING (Sun Sep 30 14:02:35 CEST 2007): Was
unable to load a class when loading a package. Perhaps it is missing
from this appl




More information about the rules-users mailing list