[jboss-user] [Beginners Corner] - [JBoss Rules with DSL] Unable to expand
tom.collet
do-not-reply at jboss.com
Fri Apr 17 10:24:12 EDT 2009
Hi there,
I'm a newbie on Jboss and I try to use a basic DSL with a basic rule :
My DSL file called TctMyDSL.dsl :
---------------------------------------
[consequence][]print "{message}"=System.out.println("{message}");
My DRL file :
---------------
package tom
| import java.util.Date;
|
| expander TctMyDSL.dsl
|
| rule "TctMyRule2"
|
| when
|
| then
| print : "TctMyRule2-->then"
| end
To fire my rule, I use a servlet deployed on a jboss-4.0.5.GA server / Vista and using the java 1.5 version :
My Servlet :
--------------
| imports ...
|
|
| /**
| * Servlet implementation class for Servlet: TctMyServlet
| *
| */
| public class TctMyRulesServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
| static final long serialVersionUID = 20101986;
| protected static RuleEngine ruleEngine = RuleEngine.getInstance();
| private static Logger log = Logger.getLogger(TctMyRulesServlet.class);
|
| /* (non-Java-doc)
| * @see javax.servlet.http.HttpServlet#HttpServlet()
| */
| public TctMyRulesServlet() {
| super();
| }
|
| /* (non-Java-doc)
| * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
| */
|
| protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
| Space space = Space.newInstance();
| space.write(EventI.SP_NOW, new Date());
| RuleSession mem = ruleEngine.createSession(null, "TctMyRuleBase");
| mem.addFact((Date)space.read(EventI.SP_NOW));
|
| try{
| mem.processFacts();
| }catch(Exception e){
| log.info("Tom say : "+e.getMessage());
| }
| }
|
| /* (non-Java-doc)
| * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
| */
| protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
| this.doGet(request, response);
| }
| }
|
And so I am getting the following error :
unknown:11:0 Unable to expand: print "TctMyRule2-->then". Due to Expression was not expandable: print "TctMyRule2-->then"
For the moment I don't use my fact to fire my rule (when block is empty) as i'm debugging but in the future I would have something like this :
My future DRL file :
----------------------
package tom
| import java.util.Date;
|
| expander TctMyDSL.dsl
|
| rule "TctMyRule2"
|
| when
| now : Date()
| then
| print : "message"
| end
Without DSL file my rules work fine.
Also I have made a lot of research but I get only solutions for punctuation problems like added spaces, missing expander ...
Thank you for your help and please accept my apologies for the bad English :-)
Tom.
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226227#4226227
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226227
More information about the jboss-user
mailing list