aspose file tools*
The moose likes Spring and the fly likes Spring Integration with Drools Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of EJB 3 in Action this week in the EJB and other Java EE Technologies forum!
JavaRanch » Java Forums » Frameworks » Spring
Bookmark "Spring Integration with Drools" Watch "Spring Integration with Drools" New topic
Author

Spring Integration with Drools

KetakiDeshpande Malunjkar
Greenhorn

Joined: Jul 06, 2011
Posts: 1
Hi Experts,

I am facing one issue while integrating drools with Spring.

I have done the following configurations

Beans.xml :

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:drools="http://drools.org/schema/drools-spring"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.directwebremoting.org/schema/spring-dwr
http://www.directwebremoting.org/schema/spring-dwr-2.0.xsd
http://drools.org/schema/drools-spring
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">

<bean id="droolsDAOImpl" class="com.dao.DroolsDAOImpl">
<property name="sessionFactory" ref="mySessionFactory" />
<property name="ksession" ref="ksession" />
<property name="intermediateData" ref="intermediateData" />
<property name="kbase" ref="kbase" />
</bean>

<bean id="intermediateData" class="com.pojo.IntermediateData" />

<drools:kbase id="kbase">
<drools:resources>
<drools:resource type="DRL" source="classpath:Sample.drl"></drools:resource>
</drools:resources>

</drools:kbase>

<drools:ksession id="ksession" type="stateful" kbase="kbase"/>

----------------------------------------------------------------------------------------------------
DroolsDAOImpl.java :


public class DroolsDAOImpl implements DroolsDAO {

private StatefulKnowledgeSession ksession;

private IntermediateData intermediateData;

private KnowledgeBase kbase;

public KnowledgeBase getKbase() {
return kbase;
}

public void setKbase(KnowledgeBase kbase) {
this.kbase = kbase;
}

public StatefulKnowledgeSession getKsession() {
return ksession;
}

public void setKsession(StatefulKnowledgeSession ksession) {
this.ksession = ksession;
}

public static void main(String args[]) throws Exception{

Resource res = new ClassPathResource("beans.xml");
BeanFactory factory = new XmlBeanFactory(res);
DroolsDAOImpl droolsDAOImpl=(DroolsDAOImpl)factory.getBean("droolsDAOImpl");
droolsDAOImpl.init_drools();

}

public void init_drools() throws Exception{


try {


ksession = kbase.newStatefulKnowledgeSession();


intermediateData.setNoofPay(noofPaytemp());
intermediateData.setRegPay(regpaytemp());

ksession.insert(intermediateData);
ksession.fireAllRules();

} catch (Throwable t) {

logger.error("Exception occured in DroolsDAOImpl---"+t);
throw new Exception("Some Error Occured. Please try after some time");

} }


I am having one drl file : Sample.drl which contains rule and IntermediateData is simple pojo.
But after running this I am getting following error:

Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'drools:kbase'.

Can anyone help me with this issue? Thanks in advance
Eduardo Ducer
Greenhorn

Joined: Oct 04, 2011
Posts: 1
Did you solve the issue?

If not, try to download the jar drools-spring-[drools version].jar there you'll find the .xsd files for "drools-spring", extract the "drools-spring-1.2.0.xsd" and place it in your project's classpath, after that you can replace:

http://drools.org/schema/drools-spring http://anonsvn.jboss....spring/drools-spring-1.0.0.xsd

with this:

http://drools.org/schema/drools-spring file:///path_to_the_xsd_file_in_your_project/drools-spring-1.2.0.xsd

If the error changes to:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://drools.org/schema/drools-spring]

if you didn't add the drools-spring.jar to your project's classpath then you should do it. Note that drools-spring.jar is not included in the Drools binaries, at least it doesn't in the distribution I've downloaded (5.2.0.Final), but you can download it from a Maven repository or if you are using Maven you can add the dependency:


This has solved the problem in my case. Hope it helps...
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Spring Integration with Drools
 
Similar Threads
Spring AOP question
DataSource null in DWR
Spring / Hibernate / cxf problems connecting with oracle
unable to call AOP method
Simple AOP not working