File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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
JavaRanch » Java Forums » Frameworks » Spring
Bookmark "Spring Integration with Drools" Watch "Spring Integration with Drools" New topic

Spring Integration with Drools

KetakiDeshpande Malunjkar

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=""

<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 id="intermediateData" class="com.pojo.IntermediateData" />

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


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

---------------------------------------------------------------------------------------------------- :

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");


public void init_drools() throws Exception{

try {

ksession = kbase.newStatefulKnowledgeSession();



} 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

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://anonsvn.jboss....spring/drools-spring-1.0.0.xsd

with this: 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 []

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:
subject: Spring Integration with Drools
It's not a secret anymore!