[rules-users] Minimum jar set in 5.1.0.M2 contains lib/mvel2.jar - a show stopper for us

Greg Barton greg_barton at yahoo.com
Fri Jun 25 11:38:35 EDT 2010


It was my understanding that even if you set the dialect to java that mvel is still used to execute some LHS expressions.  (Except for code inside an accumulate expression.)  It's the RHS that is mainly affected.

--- On Fri, 6/25/10, Wolfgang Laun <wolfgang.laun at gmail.com> wrote:

From: Wolfgang Laun <wolfgang.laun at gmail.com>
Subject: [rules-users] Minimum jar set in 5.1.0.M2 contains lib/mvel2.jar - a show stopper for us
To: "Rules Users List" <rules-users at lists.jboss.org>
Date: Friday, June 25, 2010, 3:05 AM

I've read somewhere that the minimum jar set for execution with a precompiled .pkg is just
   drools-api-5.1.0.M2.jar
   drools-core-5.1.0.M2.jar

However, trying to run an application with just a .pkg file, this jar set results in the stack

dump shown below, due to a missing "org.mvel2..." class. Adding lib/mvel2-2.0.16.jar to the
CLASSPATH fixes this, but (for reasons I don't care to elaborate here) be we can't have this
in our application. 


Can this .jar be avoided? 

Note: I'm not using mvel, and the .drl file begins with "package movie; dialect "java".

-W


Exception in thread "main" java.lang.NoClassDefFoundError: org/mvel2/integration/impl/MapVariableResolverFactory

    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:632)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)

    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)

    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)

    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2308)
    at java.lang.Class.getDeclaredField(Class.java:1897)
    at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1627)

    at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:69)
    at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:442)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:430)

    at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:327)
    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:564)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1600)

    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1513)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1749)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)

    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
    at java.util.HashMap.readObject(HashMap.java:1047)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)

    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)

    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
    at org.drools.rule.DialectRuntimeRegistry.readExternal(DialectRuntimeRegistry.java:41)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)

    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)

    at org.drools.rule.Package.readExternal(Package.java:198)
    at org.drools.definitions.impl.KnowledgePackageImp.readExternal(KnowledgePackageImp.java:99)
    at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1809)

    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1768)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)

    at java.util.ArrayList.readObject(ArrayList.java:696)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:616)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:991)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1865)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1770)

    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1346)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:368)
    at movie.Main.init(Main.java:40)
    at movie.Main.main(Main.java:89)

Caused by: java.lang.ClassNotFoundException: org.mvel2.integration.impl.MapVariableResolverFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)

    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:264)

    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:332)
    ... 60 more




-----Inline Attachment Follows-----

_______________________________________________
rules-users mailing list
rules-users at lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100625/b0d001b1/attachment.html 


More information about the rules-users mailing list