Win a copy of Terraform in Action this week in the Cloud forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Rob Spoor
  • Bear Bibeault
Saloon Keepers:
  • Jesse Silverman
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Al Hobbs
  • salvin francis

Spring Integration with Drools

 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
 
Greenhorn
Posts: 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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...
 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic