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