[rules-users] Run Drool Application From Command Prompt
Greg Barton
greg_barton at yahoo.com
Tue Jul 28 02:17:29 EDT 2009
heh. I just remembered that Thread.currentThread().getContextClassLoader() can return null as well. :) A good thing to do is have a utility function like the attached class loading utility class. Rearrange the class loading order to suit your taste.
--- On Tue, 7/28/09, Greg Barton <greg_barton at yahoo.com> wrote:
> From: Greg Barton <greg_barton at yahoo.com>
> Subject: Re: [rules-users] Run Drool Application From Command Prompt
> To: "Rules Users List" <rules-users at lists.jboss.org>
> Date: Tuesday, July 28, 2009, 12:59 AM
>
> It's unclear from your post when you get the NPE: from the
> command line, from eclipse, or when integrated with OFBiz.
> (I assume you're referring to http://ofbiz.apache.org/)
>
> It's undoubtedly a classpath issue. Just peek at the
> source a bit. I'm not sure what version you're using,
> but if you look at the source in the svn repo you'll see
> that line 92 of JavaDialectConfiguration is this:
>
> getClass().getClassLoader().loadClass(
> "org.eclipse.jdt.internal.compiler.Compiler" );
>
> See the javadoc for Class.getClassLoader() that says
> "Returns the class loader for the class. Some
> implementations may use null to represent the bootstrap
> class loader. This method will return null in such
> implementations if this class was loaded by the bootstrap
> class loader."
>
> So, it looks probable that in the environment that's having
> problems, the JavaDialectConfiguration class is loaded by
> the bootstrap classloader. What is the VM
> implementation you're using?
>
> It might be best if
> Thread.currentThread().getContextClassLoader() was used
> instead of getClass().getClassLoader() in
> JavaDialectConfiguration and elsewhere. Devs, have an
> opinion on that?
>
> --- On Mon, 7/27/09, Pankaj.Jain at lntinfotech.com
> <Pankaj.Jain at lntinfotech.com>
> wrote:
>
> > From: Pankaj.Jain at lntinfotech.com
> <Pankaj.Jain at lntinfotech.com>
> > Subject: Re: [rules-users] Run Drool Application From
> Command Prompt
> > To: rules-users at lists.jboss.org
> > Date: Monday, July 27, 2009, 11:50 PM
> >
> >
> > Hi
> >
> >
> >
> > I still have not got any
> > solution
> > of my problem that I posted previously. I have
> included all
> > required jar
> > files and set proper class path .. Please do help ?
> >
> >
> >
> > problem:
> >
> >
> >
> >
> > I am trying to
> > integrate Drool with
> > ofbiz and run application from command prompt. In one
> way I
> > have integrated
> > it properly and I am able to run it
> > successfully.
> >
> >
> >
> >
> > Code : Which I was using initially
> >
> >
> >
> > KnowledgeBuilder kbuilder =
> > KnowledgeBuilderFactory.newKnowledgeBuilder();
> >
> >
> >
> >
> > or
> >
> >
> >
> > PackageBuilderConfiguration cfg = new
> > PackageBuilderConfiguration();
> >
> >
> > KnowledgeBuilder kbuilder =
> > KnowledgeBuilderFactory.newKnowledgeBuilder();
> >
> >
> >
> >
> > Exception I got :
> >
> >
> >
> > org.drools.RuntimeDroolsException: Unable to load
> dialect
> >
> 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java
> >
> >
> >
> :org.drools.rule.builder.dialect.java.JavaDialectConfiguration'
> >
> >
> > at
> >
> org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:274)
> > at
> >
> org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:259)
> >
> >
> >
> >
> > at
> >
> org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:176)
> > at
> >
> org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:153)
> > at
> >
> org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:242)
> >
> >
> > .
> >
> > .
> >
> > .
> >
> > Caused by: java.lang.NullPointerException
> >
> > at
> >
> org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompiler(JavaDialectConfiguration.java:92)
> > at
> >
> org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(JavaDialectConfiguration.java:55)
> > at
> >
> org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:270
> >
> >
> >
> >
> > Problem I found :
> >
> > In the class JavaDialectConfiguration in jar file
> > drools-compiler.jar there
> > is a method named "setCompliler", in this
> > method Null Pointer
> > Exception was coming.
> >
> >
> >
> > Solution I provided :
> >
> >
> > In my application I created my custom class
> > CustomJavaDialectConfiguration
> > by extending to class JavaDialectConfiguration, In
> this
> > class I overrided
> > the method setCompiler. My method was exactly same as
> that
> > of method setCompiler
> > in JavaDialectConfiguration . To call my dialect class
> I
> > also overrided
> > the method "addDialect" of
> > PackageBuilderConfiguration class
> > . For that I created class
> > CustomPackageBuilderConfiguration by extending
> > to PackageBuilderConfiguration.
> >
> > after that I wrote the code:
> >
> >
> >
> > PackageBuilderConfiguration cfg = new
> > CustomPackageBuilderConfiguration();
> >
> >
> > KnowledgeBuilder kbuilder =
> > KnowledgeBuilderFactory.newKnowledgeBuilder(cfg);
> >
> >
> >
> >
> >
> >
> > Now application is running perfectly fine from both
> eclipse
> > and command
> > prompt without any exception.
> >
> >
> >
> > I want to know as my overrided method
> > "setCompiler" was exactly
> > same then why I had to override method, and In
> original
> > code (ie in drools-compiler.jar
> > file) why it was giving exception ??? Was that
> > due to class
> > lader or something else ?? Please do help in this
> > regard ....
> >
> >
> >
> >
> >
> >
> >
> >
> > Thanks & Regards:
> >
> >
> >
> > Pankaj Jain | L&T infotech |Navi Mumbai
> >
> > Mobile: +91 9920218945
> >
> > Email : pankaj.jain at lntinfotech.com
> >
> > www.Lntinfotech.com
> >
> >
> >
> > "Whatever the mind of man can conceive & believe,
> > it can achieve."
> >
> >
> >
> > Larsen & Toubro Infotech Ltd.
> >
> > www.Lntinfotech.com
> >
> >
> >
> > This Document is classified as:
> >
> >
> >
> > L&T
> > Infotech Proprietary L&T
> > Infotech Confidential L&T
> > Infotech Internal Use Only L&T
> > Infotech General Business
> >
> >
> >
> > This Email may contain confidential or privileged
> > information for the intended
> > recipient (s) If you are not the intended recipient,
> please
> > do not use
> > or disseminate the information, notify the sender and
> > delete it from your
> > system.
> >
> >
> >
> >
> ______________________________________________________________________
> >
> >
> > -----Inline Attachment Follows-----
> >
> > _______________________________________________
> > rules-users mailing list
> > rules-users at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/rules-users
> >
>
>
>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ClassLoaderFu.java
Type: text/x-java
Size: 685 bytes
Desc: not available
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20090727/759647e9/attachment.bin
More information about the rules-users
mailing list