??xml version="1.0" encoding="utf-8" standalone="yes"?>成人国产精品一区二区网站,欧洲亚洲在线,欧美日韩在线一二三http://www.aygfsteel.com/tfzhu/category/44249.html每天q步一点点Q?/description>zh-cnTue, 05 Oct 2010 13:24:36 GMTTue, 05 Oct 2010 13:24:36 GMT60java.lang.NullPointerExceptionhttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333750.html断点断点Mon, 04 Oct 2010 16:39:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333750.htmlhttp://www.aygfsteel.com/tfzhu/comments/333750.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333750.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/333750.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/333750.htmljava.lang.NullPointerException
 at jxl.read.biff.File.<init>(File.java:77)
 at jxl.Workbook.getWorkbook(Workbook.java:250)
 at jxl.Workbook.getWorkbook(Workbook.java:235)
 at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:76)
 at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:89)
 at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:68)
 at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:59)
 at com.sample.DecisionTableTest.main(DecisionTableTest.java:36)

Drools调用readDecisionTable()Ҏ里面一处ؓQ?br /> InputStream is = DecisionTableTest.class.getResourceAsStream("rules\\Sample.xls");
final String drl = converter.compile( is, InputType.XLS );  
     
需改ؓ如下Q取的class即错误解冟?br /> InputStream is = DecisionTableTest.class.getClassLoader().getResourceAsStream("rules\\Sample.xls");
final String drl = converter.compile( is, InputType.XLS );



断点 2010-10-05 00:39 发表评论
]]>
org.mvel.CompileException: can not resolve identifier: 'declr'http://www.aygfsteel.com/tfzhu/archive/2010/10/05/333749.html断点断点Mon, 04 Oct 2010 16:32:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333749.htmlhttp://www.aygfsteel.com/tfzhu/comments/333749.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333749.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/333749.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/333749.htmlorg.mvel.CompileException: can not resolve identifier: 'declr'
 at org.mvel.ASTNode.getReducedValue(ASTNode.java:315)
 at org.mvel.ast.PropertyASTNode.getReducedValue(PropertyASTNode.java:29)
 at org.mvel.MVELInterpretedRuntime.parseAndExecuteInterpreted(MVELInterpretedRuntime.java:103)
 at org.mvel.MVELInterpretedRuntime.parse(MVELInterpretedRuntime.java:51)
 at org.mvel.TemplateInterpreter.execute(TemplateInterpreter.java:428)
 at org.mvel.TemplateInterpreter.parse(TemplateInterpreter.java:320)
 at org.drools.rule.builder.dialect.java.AbstractJavaBuilder.generatTemplates(AbstractJavaBuilder.java:113)
 at org.drools.rule.builder.dialect.java.JavaConsequenceBuilder.build(JavaConsequenceBuilder.java:95)
 at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:67)
 at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:446)
 at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:304)
 at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:167)
 at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:63)
 at com.sample.DecisionTableTest.main(DecisionTableTest.java:36)

替换mvel.jar为mvel14-1.2.10.jar后不再报错,好像是jar包的问题?br /> 看了下jar包里面的org.mvel.ASTNode.getReducedValueҎ已经注释掉了?/span>

断点 2010-10-05 00:32 发表评论
]]>
WARNING: Wasn't able to correctly close stream for decision table. nulljava.lang.NullPointerExceptionhttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333747.html断点断点Mon, 04 Oct 2010 16:22:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333747.htmlhttp://www.aygfsteel.com/tfzhu/comments/333747.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/10/05/333747.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/333747.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/333747.htmlWARNING: Wasn't able to correctly close stream for decision table. nulljava.lang.NullPointerException
 at jxl.read.biff.File.<init>(File.java:77)
 at jxl.Workbook.getWorkbook(Workbook.java:250)
 at jxl.Workbook.getWorkbook(Workbook.java:235)
 at org.drools.decisiontable.parser.xls.ExcelParser.parseFile(ExcelParser.java:76)
 at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:89)
 at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:68)
 at org.drools.decisiontable.SpreadsheetCompiler.compile(SpreadsheetCompiler.java:110)
 at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:57)
 at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)

在web目中的原先的写法ؓQ?br /> final String drl = converter.compile( "rules\\Sample.xls", InputType.XLS );

参考了下别人的写法Q改Z面的方式q行处理Q?nbsp; 
InputStream is = DecisionTableTest.class.getClassLoader().getResourceAsStream("rules\\Sample.xls");
final String drl = converter.compile( is, InputType.XLS );


断点 2010-10-05 00:22 发表评论
]]>
MyEclipse 8.5 + drools-5.1.1 的整?/title><link>http://www.aygfsteel.com/tfzhu/archive/2010/10/04/333727.html</link><dc:creator>断点</dc:creator><author>断点</author><pubDate>Mon, 04 Oct 2010 04:00:00 GMT</pubDate><guid>http://www.aygfsteel.com/tfzhu/archive/2010/10/04/333727.html</guid><wfw:comment>http://www.aygfsteel.com/tfzhu/comments/333727.html</wfw:comment><comments>http://www.aygfsteel.com/tfzhu/archive/2010/10/04/333727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/tfzhu/comments/commentRss/333727.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/tfzhu/services/trackbacks/333727.html</trackback:ping><description><![CDATA[׃drools有新版本了,所以与MyEclipse整合q行了解下?br /> 整合步骤如下Q?br /> 1、下载MyEclipse 8.5Q?br /> 2、在http://www.jboss.org/drools/downloads.html下蝲Drools Eclipse 3.5 Workbench 5.1 插gQ?br /> 3、在E:\MyEclipse8.5下新?个文Ӟlinks、myplugins?br /> E:\MyEclipse 8.5\linksQ放drools.link配置文gQ内容ؓpath=E:\\MyEclipse 8.5\\myplugins\\drools\\<br /> E:\MyEclipse 8.5\mypluginsQ放drools文gQ该E:\MyEclipse 8.5\myplugins\drools\eclipse下放|从|上下蝲的drools插g的features和plugins?br /> 4、重启MyEclipse 8.5卛_看见drools图标?br /> 5、安装JbossQ下载jboss-5.0.0.GAQ解压即可?br /> 打开MyEclipse->window->Preference->MyEclipse->Servers->JBoss->JBoss 5.xq行jre及相关配|? <img src ="http://www.aygfsteel.com/tfzhu/aggbug/333727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/tfzhu/" target="_blank">断点</a> 2010-10-04 12:00 <a href="http://www.aygfsteel.com/tfzhu/archive/2010/10/04/333727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Caused by: java.lang.RuntimeException: The Eclipse JDT Core jar is not in the classpathhttp://www.aygfsteel.com/tfzhu/archive/2010/03/16/315537.html断点断点Mon, 15 Mar 2010 16:30:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/03/16/315537.htmlhttp://www.aygfsteel.com/tfzhu/comments/315537.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/03/16/315537.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/315537.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/315537.html在操作Drools的测试例子时QEclipse后台报以下错误:
org.drools.RuntimeDroolsException: Unable to load dialect 'org.drools.rule.builder.dialect.java.JavaDialectConfiguration:java'
 at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:160)
 at org.drools.compiler.PackageBuilderConfiguration.buildDialectConfigurationMap(PackageBuilderConfiguration.java:146)
 at org.drools.compiler.PackageBuilderConfiguration.init(PackageBuilderConfiguration.java:121)
 at org.drools.compiler.PackageBuilderConfiguration.<init>(PackageBuilderConfiguration.java:98)
 at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:124)
 at org.drools.compiler.PackageBuilder.<init>(PackageBuilder.java:86)
 at com.sample.DecisionTableTest.readDecisionTable(DecisionTableTest.java:58)
 at com.sample.DecisionTableTest.main(DecisionTableTest.java:35)
Caused by: java.lang.RuntimeException: The Eclipse JDT Core jar is not in the classpath
 at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.setCompiler(JavaDialectConfiguration.java:91)
 at org.drools.rule.builder.dialect.java.JavaDialectConfiguration.init(JavaDialectConfiguration.java:52)
 at org.drools.compiler.PackageBuilderConfiguration.addDialect(PackageBuilderConfiguration.java:156)
 ... 7 more


主要是缺一个jar包:org.eclipse.jdt.core_3.3.1.v_780_R33x.jar而引L?br />

断点 2010-03-16 00:30 发表评论
]]>
Drools 规则试http://www.aygfsteel.com/tfzhu/archive/2010/03/10/315101.html断点断点Wed, 10 Mar 2010 15:00:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315101.htmlhttp://www.aygfsteel.com/tfzhu/comments/315101.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315101.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/315101.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/315101.htmlpackage rules;

import java.io.InputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.List;

import org.drools.RuleBase;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.compiler.PackageBuilder;
import org.drools.decisiontable.InputType;
import org.drools.decisiontable.SpreadsheetCompiler;
import org.drools.rule.Package;


public class TestPremium {
 public static final String path = "rules\\premium\\0326\\02\\030006\\rate.xls";
 
 public static void main(String[] args) throws Exception {
  try {
   RuleBase ruleBase = readDecisionTable();
   WorkingMemory workingMemory = ruleBase.newStatefulSession();
   int flag = path.indexOf("FormulaOrder");   
   ElementResultVO r = new ElementResultVO();
   PremiumHelper helper = new PremiumHelper();
   workingMemory.setGlobal("r", r);
   workingMemory.setGlobal("helper", helper);
   
   AppBaseVO base  = new AppBaseVO();
   AppVhlVO vhl = new AppVhlVO();
   AppPrmCoefVO prmCoef = new AppPrmCoefVO();
      
   base.setCAmtCur("01");
   base.setNAmt(4000000d);
   
   workingMemory.insert(base);
   workingMemory.insert(vhl);
   workingMemory.insert(prmCoef);
   
   workingMemory.fireAllRules();
   
   System.out.println("==========compile success!===========");
   
  } catch (Exception e) {
   System.out.println("==========compile failure!===========");
   e.printStackTrace();
  }
 }
 
 private static RuleBase readDecisionTable() throws Exception {
         final SpreadsheetCompiler converter = new SpreadsheetCompiler();
         InputStream is = TestPremium.class.getClassLoader().getResourceAsStream(path);
          final String drl = converter.compile( is, InputType.XLS );
          PackageBuilder builder = new PackageBuilder();
          builder.addPackageFromDrl( new StringReader( drl ) );
          Package pkg = builder.getPackage();
          RuleBase ruleBase = RuleBaseFactory.newRuleBase();
          ruleBase.addPackage( pkg );
          return ruleBase;
 }

}

++++++++++++++++++++++++++++++++++++++
执行后的一部分Q?br /> #From row number: 369
rule "_369"
  salience 65167
  activation-group "x"
 when
      vhl:AppVhlVO(CUsageCde == "374015", CVhlTyp == "365012", 
      eval(helper.getVhlYear(vhl.getCFstRegYm())>=4 && helper.getVhlYear(vhl.getCFstRegYm())<1000))
 then
      r.putCoef("rate",0.67);
      r.putField("Table.col","Cvrg.NRate");
end



断点 2010-03-10 23:00 发表评论
]]>
DroolsdXsl文ghttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315099.html断点断点Wed, 10 Mar 2010 14:29:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315099.htmlhttp://www.aygfsteel.com/tfzhu/comments/315099.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315099.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/315099.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/315099.htmlpackage com.premium.rules;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import org.apache.log4j.Logger;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.decisiontable.InputType;
import org.drools.decisiontable.SpreadsheetCompiler;
import org.drools.rule.Package;

public class DrlPackageManager {

 // 用于~存Drools的PackageQkey为Excel的完整\径,value为此文g~译q后的Package
 static Map<String, Package> pkgMap = new HashMap<String, Package>();
 private static Logger logger = Logger.getLogger(DrlPackageManager.class);


/**
  * 通过Excel的文件名~存Drools的Package
  *
  * @param fileName
  * @return
  * @throws Exception
  */
 public static Package getPackageByXsl(String fileName) throws Exception {
  Package pkg = (Package) pkgMap.get(fileName);
  if (pkg != null)
   return pkg;

  final SpreadsheetCompiler converter = new SpreadsheetCompiler();
  InputStream is = null;
  try {
   is = DrlPackageManager.class.getResourceAsStream(fileName);
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   is.close();
   throw new Exception("====d规则的资源文? + fileName + "出错Q请查文?+ fileName + "=====", e);
  }
  String drl = null;
  try {
   drl = converter.compile(is, InputType.XLS);
   logger.debug("Drools Excel规则文gQ? + fileName + "~译?drl文g的结果:"+ drl);
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   is.close();
   throw new Exception("xls文g~译成drl文g出错", e);
  }

  PackageBuilder builder = new PackageBuilder();
  StringReader srd = new StringReader(drl);
  builder.addPackageFromDrl(srd);
  pkg = builder.getPackage();
  pkgMap.put(fileName, pkg);
  is.close();
  return pkg;
 }

}

断点 2010-03-10 22:29 发表评论
]]>
Drools 4.0http://www.aygfsteel.com/tfzhu/archive/2010/03/10/315094.html断点断点Wed, 10 Mar 2010 13:43:00 GMThttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315094.htmlhttp://www.aygfsteel.com/tfzhu/comments/315094.htmlhttp://www.aygfsteel.com/tfzhu/archive/2010/03/10/315094.html#Feedback0http://www.aygfsteel.com/tfzhu/comments/commentRss/315094.htmlhttp://www.aygfsteel.com/tfzhu/services/trackbacks/315094.html1、Drools是什?
Drools 是一个基于Charles Forgy's的Rete法的,专ؓJava语言所设计的规则引擎。Rete法应用于面向对象的接口Z商业对象的商业规则的表达更ؓ自然。Drools是用Java写的Q但能同时运行在Java?Net上?/p>

一路到底的框架Q?br /> 大多数开发者都有自己喜q框架。无特定序Q它们包括表现层框架QStruts, JSF, Cocoon和SpringQ?持久化框ӞJDO, Hibernate, Cayenne and Entity BeansQ以及结构框?EJB, 又是Spring, Pico和Excalibur), q有其它很多。每U框枉各有所长,l开发者提供子许多“卛_即用”的功能。用框架来部v应用意味着你避免了许多让h厌烦的细节,让你集中注意力到关键之处?br /> 到目前ؓ_在框架所能做的事中仍然有一个缺口,那就是商业逻辑没有框架。像EJB和Springq样的工兯好,但它们却几乎没有提及怎么l织你的那些if …then语句。把Drools加到你的开发工L中意味着现在你可?#8220;一路到?#8221;的用框架来构徏你的应用E序?/p>


2.Drools4.0版本Q?/span>
JBoss Drools是一Ƒּ源的业务规则引擎Q目前已l发布了4.0版本。在4.0版本中主要的特色和改q如下:
1.更高的性能Q较之于之前的版本,Drools 4.0更ؓ高效q且占用更少的内存空间。内部的性能试表明Q性能的提升已l从几分钟羃减ؓ若干U钟?
2.提升的表达能力:当前的发布版引入了更为强大且的业务行本语aQMVFlex表达式语aQ?br /> 3.友好的业务分析工P一个具备向导功能的规则~辑器的增加Q得非E序员用户可以设计复杂的业务规则Qƈ在没有编写Q何代码的情况下自动绑定企业数据。提供带有菜单提C和下拉列表的向导来帮助用户完成设计q程?
4.规则的能力Q可视化的徏模技术可以用户声明式地为相应规则的执行路径建立讉K模型。它同样q允许在单个工作内存中存在多个ƈ发工作流QƈҎ控制典型的业务处理过E的需求,从根本上l织规则的执行?5.多应用支撑:对于有状态和无状态处理过E增强的支持以及全面的线E安全性,辅助Drools更轻易的嵌入在Javaq_QJavaEE以及面向服务的商业应用之中?
6.直接可和Hibernate集成Q用户可以直接在Hibernate驱动的RDBMS查询中对数据QfactsQ进行判断。现有的Hibernatelg可以直接用在规则引擎里,减少~码的工作量?
7.为非E序员设计的BRMSQ从技术角度来看,新的BRMSZWeb开发,使用AJAX呈现Q便于协作,是一个编写、版本化控制和管理规则的pȝ。业务分析师目前可以交互式的授权或修改自动{换的规则。管理员目前具备完全的生命周期控制能力,包含何种规则在QA阶段Q分D(stagingQ,以及实施QproductionQ阶D늭{?

3.Drools的M架构Q?/span>
我们使用Drools是Z让它处理数据与规则的关系Q因此Drools要获得数据和获得规则Q然后进行执行。因此Drools分ؓ~制和运行时两个部分?
~制是指产生rule的过E,Drools用DRLQ或者XML来描q规则。编制的q程包括则徏立DRL 或XML 文gQ传入一个由Antlr 3 文法器定义的解析器中。解析器Ҏ件中规则文法的正性进行检查ƈ为descr 建立一个中间结构,在AST 中的descr 代表规则的描q。AST 然后descr 传入Package Builder中,由其q行打包。Package Builder 同时负责包括打包中用到的所有代码生器和编译器。Package 对象是自包含q可配置的,它是一个包含规则的序列化的对象?

RuleBase 是运行时lgQ包含一个或多个Package。Package 在Q何时候都可以向RuleBase中添加或删除。一个RuleBase 可以同时初始化多个Working MemoryQ在光l护着一个弱引用Q除非重新进行配|。Working Memory 包含许多子组Ӟ如Working Memory Event Support(事g支持),Truth Maintenance System(真值维护系l?, Agenda ?Agenda Event Support(事g支持)。向Working Memory 中设|对象的工作可能要在建立了一个或多个Ȁzȝ规则后才l束。Agenda 负有规划Ȁz规则运行的责Q?


4.Drools主要有以下类实现Q?/span>
~制Q?
XmlParser,DrlParser 分别用来解析XML描述的规则文件和DRL描述的规则文件?
PackageBuilder 创徏package实例?
例如Q?
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "package1.drl" ) ) );
builder.addPackageFromXml( new
InputStreamReader( getClass().getResourceAsStream( "package2.xml" ) ) );
Package pkg = builder.getPackage();

q行时的c:
RuleBase 使用RuleBaseFactory 实例化,默认情况下返回一个ReteOO 的RuleBase。Package通过使用addPackage Ҏ按顺序加入。你可以指定M名称I间的Packages 或者同一名称的多个包加入RuleBase?
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );

事实数据相关c:
WorkingMemory 保存q行时事实数据的地方?
由ruleBase产生QWorkingMemory wm= ruleBase.newStatefulSession();

加蝲事实数据Q?
wm.insert(object );
insertҎq回一个FactHandle对象指向workingMemory中对象的引用。如果要对Objectq行修改删除{操作都要通过FactHander对象来完成?

在准备好RuleQ和Fact?可以调?WorkingMemory对象?fireAllRulesQ)Ҏ执行规则引擎?

Agenda上面提到q它负有规划Ȁz规则运行的责Q?
它运行过E分两个阶段Q?
1Q?WorkingMemory Actions Q?assert 新的 facts Q修改存在的 facts ?retract facts 都是 WorkingMemory Actions 。通过在应用程序中调用 fireAllRules() ҎQ会使引?转换?Agenda Evaluatioin 阶段?
2Q?Agenda Evaluation Q尝试选择一条规则进行激发( fire Q。如果规则没有找到就 退出,否则它就试Ȁ发这条规则,然后转换?WorkingMemory Actions 阶段Q直?Agenda中ؓI?nbsp;



断点 2010-03-10 21:43 发表评论
]]>
վ֩ģ壺 | ׼| | ʹ| ̨ʡ| | ٹ| | | | ̨| | ղ| ƽ| Ϊ| | | Ʊ| | ˳| Ͼ| | | ٲ| | | | ɾ| °| SHOW| ͩ| ۷| | ۶| ԣ| ˮ| ̨| | ͨ| | Ϸ|