Hi everybody.<br><br>I am having a problem to instantiate a console application with Drools and Sping. With Spring, I am able to instanciate a bean and print its value to console, but with Spring + Drools I get this error:<br>
<br>Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kbase': Invocation of init method failed; nested exception is java.lang.RuntimeException: Unable to parser Reader<br>
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)<br>
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)<br> at java.security.AccessController.doPrivileged(Native Method)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)<br>
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)<br> at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)<br>
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)<br> at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)<br>
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)<br> at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)<br>
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)<br> at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)<br>
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)<br> at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)<br>
at com.test.Test.main(Test.java:10)<br>Caused by: java.lang.RuntimeException: Unable to parser Reader<br> at org.drools.compiler.DrlParser.getParser(DrlParser.java:313)<br> at org.drools.compiler.DrlParser.parse(DrlParser.java:141)<br>
at org.drools.compiler.DrlParser.parse(DrlParser.java:147)<br> at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:263)<br> at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:458)<br>
at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:519)<br> at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:28)<br> at org.drools.container.spring.beans.KnowledgeBaseBeanFactory.afterPropertiesSet(KnowledgeBaseBeanFactory.java:103)<br>
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)<br> at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)<br>
... 15 more<br>Caused by: java.lang.NullPointerException<br> at java.io.FilterInputStream.close(Unknown Source)<br> at sun.net.www.protocol.jar.JarURLConnection$JarURLInputStream.close(Unknown Source)<br>
at sun.nio.cs.StreamDecoder.implClose(Unknown Source)<br> at sun.nio.cs.StreamDecoder.close(Unknown Source)<br> at java.io.InputStreamReader.close(Unknown Source)<br> at org.antlr.runtime.ANTLRReaderStream.load(ANTLRReaderStream.java:92)<br>
at org.antlr.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:68)<br> at org.antlr.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:52)<br> at org.antlr.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:48)<br>
at org.antlr.runtime.ANTLRInputStream.<init>(ANTLRInputStream.java:40)<br> at org.drools.compiler.DrlParser.getParser(DrlParser.java:308)<br> ... 24 more<br><br>I use eclipse, and running from the IDE Spring + Drools in a console application works fine. This problem happens when I generate an executable jar and try the "java -jar" command.<br>
<br>My main method is below<br><br>public static void main(String[] args) {<br> ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("appConfig.xml");<br> StatefulKnowledgeSession ksession = (StatefulKnowledgeSession) context.getBean("ksession");<br>
System.out.println(ksession);<br>}<br><br>And my applicationContext.xml is below<br><br><?xml version="1.0" encoding="UTF-8"?><br><beans xmlns="<a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a>"<br>
xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>"<br> xmlns:drools="<a href="http://drools.org/schema/drools-spring">http://drools.org/schema/drools-spring</a>" <br>
xmlns:camel="<a href="http://camel.apache.org/schema/spring">http://camel.apache.org/schema/spring</a>"<br> xsi:schemaLocation="<a href="http://www.springframework.org/schema/beans">http://www.springframework.org/schema/beans</a> <a href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</a><br>
<a href="http://drools.org/schema/drools-spring">http://drools.org/schema/drools-spring</a> <a href="http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd">http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-container/drools-spring/src/main/resources/org/drools/container/spring/drools-spring-1.0.0.xsd</a><br>
<a href="http://camel.apache.org/schema/spring">http://camel.apache.org/schema/spring</a> <a href="http://camel.apache.org/schema/spring/camel-spring.xsd">http://camel.apache.org/schema/spring/camel-spring.xsd</a>"><br>
<br> <drools:kbase id="kbase"><br> <drools:resources><br> <drools:resource source="classpath:knowledgebase-config.xml" type="CHANGE_SET" /><br> </drools:resources><br>
</drools:kbase><br> <br> <drools:ksession id="ksession" type="stateful" kbase="kbase" /><br></beans><br><br>Any clue of what is cousing the problem? Thank you very much.<br>
<br>Regards,<br>Anderson<br><br>