[rules-users] Drools in a web application

Stephen Masters stephen.masters at me.com
Sat Nov 9 05:55:17 EST 2013


Given that you’re using Spring MVC, this might be a reasonable example:

	https://github.com/gratiartis/sctrcd-payment-validation-web

It has examples of doing this for a simple validation, with a stateless session.

i.e.
Request goes to Spring MVC controller.
Controller invokes a service bean, which wraps a knowledge base.
Rule based validator inserts a fact and executes rules.
Rules may or may not set an ‘isValid’ flag on the request. They may (or may not) also annotate that request fact to indicate which rules are rejecting it and why.
The rule based validator returns a result object to the service.
The service returns a result object to the controller.
The controller returns a JSON object to the client.

Hopefully it’s not too difficult to find your way around the project.

To try it out:
git clone https://github.com/gratiartis/sctrcd-payment-validation-web
cd sctrcd-payment-validation-web
mvn clean install tomcat7:run
curl http://localhost:9090/iban/validate/GB29NWBK60161331926819
Change a couple of characters in the IBAN on another curl to see a rejection.

btw - If anybody else fancies taking a look at it, please feel free to send criticism back to me. Either directly or to discuss on the mailing list. There’s so little out there in the way of documented good practice for using Drools, that I get the impression that everyone just finds their own way. So I would be happy to hear what others feel could be done to improve my little Spring MVC/Drools demo project.

Steve


On 9 Nov 2013, at 09:24, forsakendoll <forsakendoll at hotmail.com> wrote:

> I'm very new to drools. I know this question is really a noob question but
> please bear with me. I'm using Spring MVC and I want to integrate drools
> expert to my project. What I've done so far is to integrate the hello world
> sample of drools expert. But now what I want to do is:
> 
> 1. Send a bean to the rules for it to evaluate.
> 2. Modify the bean depending on the rules
> 3. Send it back to the controller to make a response to the user.
> 
> I was able to do the number 1. But for number 2 and 3. I don't know how to
> do it. I want to have a nested rule. But now I'm only capable of doing this
> rule:
> 
> global String $test;
> 
> rule "Excellent"
> 
>    when
>        $m: FLTBean ( listeningScore > 85 )
>        $p: FLTBean ( listeningScore < 101 )
>    then
>        $test = "Excellent";
>        System.out.println( $test );
> 
> end
> 
> I don't know yet how can I make a nested rule. Please give me a simple
> example that a newbie like me can understand.
> 
> 
> 
> 
> --
> View this message in context: http://drools.46999.n3.nabble.com/Drools-in-a-web-application-tp4026704.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20131109/2f5a4874/attachment.html 


More information about the rules-users mailing list