- 浏览: 114566 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
mponeno:
规则有条件的话,貌似不能触发规则,比如你helloWorld的 ...
读取Guvnor中的规则... -
di1984HIT:
写的很好偶~
Struts + Jboss Drools 规则引擎 -
duyangsss:
你好,我看见你将KnowledgeAgent的方式注释掉了,/ ...
读取Guvnor中的规则... -
chenlinux:
博主,我们现在也要用drools,能否提供一个完整的例子(包括 ...
基于Drools 规则引擎的信用卡申请系统<4> 之 Drools 实现业务规则 -
t22011787:
学习了
Drools 5 for Eclipse 3.5
Struts+Jboss Drools规则引擎:一个Stock小小例子
第一篇写在JavaEye的东西,很粗糙!
1、从try输入信息,Struts Action控制其跳转,Drools规则引擎执行规则之后将信息提供给Struts Action。
1.1 BusinessLayer类
代码如下:
package com.stock;
import java.io.InputStreamReader;
import java.io.Reader;
import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.rule.Package;
//加载Drools规则库
//评估该股票即可
public class BusinessLayer {
//定义规则文件字符串
public final static String file="Business.drl";
public static RuleBase businessRule;
public static RuleBase rr;
private static RuleBase readRules() throws Exception {
//读入规则文件
Reader source = new InputStreamReader(BusinessLayer.class
.getResourceAsStream(file));
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(source);
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage(pkg);
return ruleBase;
}
public static void evaluateStockPurchase(UserOffer stockToBuy)
{
try {
businessRule=readRules();
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
WorkingMemory workingMemory=businessRule.newStatefulSession();
workingMemory.insert(stockToBuy);
//我忘记激活规则了
System.out.println("激活规则");
System.out.println("-----------");
workingMemory.fireAllRules();
}
public static void ee()
{
try {
rr=readRules();
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
WorkingMemory work=rr.newStatefulSession();
work.insert(new UserOffer());
work.fireAllRules(); //该处代码仅供JUnit测试使用!
}
}
1.2 UserOffer类
package com.stock;
public class UserOffer {
private final static String Yes = "Yes";
private final static String No = "No";
private String stockName;
private String stockPrice;
private String stockQuantity;
private String commendPurchase;
public String getCommendPurchase() {
return commendPurchase;
}
public void setCommendPurchase(String commendPurchase) {
this.commendPurchase = commendPurchase;
}
public String getStockName() {
return stockName;
}
public void setStockName(String stockName) {
this.stockName = stockName;
}
public String getStockPrice() {
return stockPrice;
}
public void setStockPrice(String stockPrice) {
this.stockPrice = stockPrice;
}
public String getStockQuantity() {
return stockQuantity;
}
public void setStockQuantity(String stockQuantity) {
this.stockQuantity = stockQuantity;
}
}
3、Struts Action
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.stock.dao.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.stock.BusinessLayer;
import com.stock.UserOffer;
import com.stock.dao.form.TryForm;
/**
* MyEclipse Struts
* Creation date: 05-13-2009
*
* XDoclet definition:
* @struts.action path="/try" name="tryForm" input="/form/try.jsp" scope="request" validate="true"
*/
public class TryAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TryForm tryForm = (TryForm) form;// TODO Auto-generated method stub
UserOffer user = null;
if (null == user) {
user = new UserOffer();
}
//设置user的数值
//从Form获得
user.setStockName(request.getParameter("stockname"));
//调用商业逻辑
BusinessLayer.evaluateStockPurchase(user);
//查看执行方法
BusinessLayer.ee();
if ("Yes".equals(user.getCommendPurchase())) {
return mapping.findForward("yes");
} else {
return mapping.findForward("no");
}
}
}
1.4 JBoss Drools 规则文件
#created on: 2009-5-13
package com.stock;
#list any import classes here.
import com.stock.UserOffer;
rule "new rule"
测试结果:
#declare any global variables here
rule "Your First Rule"
when
#conditions
$s:UserOffer( stockName=="ABC")
then
#actions
#返回名字为ABC公司的名称 ,利用Action来控制
$s.setCommendPurchase("Yes");
System.out.println("规则引擎执行!");
end
when
then
System.out.println("Hello Drools,测试规则引擎用例!");
end
输入:ABC
发表评论
-
写在之前...
2009-10-07 12:04 57#created on: 2009-10-7package c ... -
Drools 思考
2009-10-03 01:14 1517时间转瞬,好恐怖,十 ... -
弃Dojo 迎 Extjs
2009-09-16 17:00 3115曾经花了两三天,看Using the Dojo JavaScr ... -
Drools 5 for Eclipse 3.5
2009-09-10 09:46 5530前几天看了下Dojo 的英文资料,看得七七八八了,所以想用Ec ... -
Petstore SearchBean
2009-09-06 10:48 79SearchBean.java ... ... -
PetStore 之 Lucene 2.4
2009-09-03 11:58 1124之前的几天发现上不了j ... -
Search文件夹 之二
2009-08-28 01:14 71PetStore 之 Lucene 3、Indexer ... -
search 文件夹
2009-08-28 00:57 74HTMLParser.java ... -
Sun PetStore
2009-08-21 18:48 3404http://www.omniprogrammer.com/? ... -
我的蜗牛 Sun PetStore学习
2009-08-18 17:45 320今天:2009年8月18日 除了睡觉还是睡觉,等待一样 ... -
Used Guided Rule for Drools
2009-08-12 13:32 1397归去来兮,博客将芜 向来很独立,没想到毕业之后,居然严 ... -
Linux New Fish
2009-06-22 17:44 69今天在RedHat Linux中安装JDK,配置环境变量,弄错 ... -
WebSphere Application Server Community Edition
2009-06-17 12:13 9841、下载WebSphere Application Serve ... -
Drools5的安装
2009-06-09 11:07 2442在Eclipse3.4.0中无法识别Drools5 修 ... -
Expert System Base Drools
2009-06-08 22:05 134之前想用J2EE+Drools的,但是一个URL让我寸步难行 ... -
Drools keep working
2009-06-06 14:56 1212一个问题完了,另外一个问题又出现了。 还没有机会使用到微软的 ... -
可恶Drools,写给我自己看的
2009-06-05 22:18 2085java.lang.NullPointerExceptionj ... -
RuleAgent Drools
2009-05-28 22:43 2341沉默了,还是继续沉默。 原来一直使用的一种方式,今天才 ...
相关推荐
Drools 则是一个开源项目,与JBoss Java EE 应用服务器紧密结合,为企业提供了强大的规则管理解决方案。 总结起来,2012年SOA最佳技巧集涵盖了从Web开发到集成架构设计等多个方面的重要知识点。这些技巧不仅反映了...
4. **规则引擎集成**:jbpm3集成了Drools规则引擎,使得业务流程可以根据预定义的规则进行决策。规则引擎允许在流程执行过程中动态修改规则,增强了流程的灵活性和适应性。 5. **事件处理**:jbpm3支持事件监听和...
4. **drools-core.jar**: Drools是JBoss的一个规则引擎,它提供了业务规则管理和执行的能力。jbpm4使用Drools作为其规则引擎,使得业务流程可以基于规则进行决策。 5. **xwork-core-2.1.6.jar**: XWork是Struts2...
7. **Drools5.0**: 规则引擎,用于实现业务规则的动态管理和执行。下载地址为[http://www.jboss.org/drools/downloads.html](http://www.jboss.org/drools/downloads.html)。 8. **Struts2**: MVC框架,用于构建...
这些可以通过jBPM的业务规则引擎实现,使用Drools进行定义。 3. **数据模型**:请假单的信息需要存储,这就需要数据库设计。包括请假人、请假类型、开始日期、结束日期、请假天数、审批状态等字段。 4. **接口集成...
jbpm还支持规则引擎Drools的集成,可以实现流程与业务规则的联动。此外,jbpm还提供了事件驱动和动态流程功能,以应对复杂多变的业务场景。 总之,jbpm是一个强大的业务流程管理工具,通过学习和掌握其基本概念、...
- **JBoss Drools**:一个业务规则管理系统。 - **P2:工作流引擎** - **Quartz**:用于调度任务。 - **P2:Web服务框架** - **XFire/Axis2**:用于构建Web服务。 - **P2:单点登录解决方案** - **JOSSO/JBoss ...
* Drools 5.0:提供了业务规则管理功能 * Struts2.5:提供了Web应用框架 * Hibernate 3.2:提供了持久层框架 * Mysql:提供了数据库存储 二、工具安装 在MyEclipse中,需要安装以下工具: 1. JDK 1.6:安装JDK 1.6...
- **规则引擎**:如 Drools。 - **搜索引擎**:如 Solr 或 Elasticsearch。 - **缓存引擎**:如 Redis。 - **任务调度**:如 Quartz。 - **身份认证**:如 Spring Security。 - **报表服务**:如 BIRT。 - **集群、...