隨筆-61  評論-159  文章-0  trackbacks-0
          最近由于項目用到drools,所以只有一邊學習一邊開發,首先先安裝好插件搭好開發環境。
          下載drools eclipse插件,地址為:http://www.jboss.org/drools/downloads.html
          解壓用links方式安裝插件,如果features目錄和plugins目錄上層沒有eclipse文件夾,就要建一個。

          在Eclipse目錄下面新建一個links文件夾,里面建一個XXX.link,內容為:path=F://plugins/drools

          啟動Eclipse,在window----prefernces那里如果看不到又drools,就說明插件安裝不成功。

          Eclipse3.4安裝drools插件遇到識別不了插件,解決方案如下:

          F:\eclipse\configuration\org.eclipse.equinox.simpleconfigurator下面bundles.info最后加上以下幾句:

          org.guvnor.tools,5.0.1,file:plugins\org.guvnor.tools_5.0.1.jar,4,false
          org.eclipse.webdav,3.0.101,file:plugins\org.eclipse.webdav_3.0.101.jar,4,false
          org.drools.eclipse,5.0.1,file:plugins\org.drools.eclipse_5.0.1.jar,4,false
          org.drools.eclipse.task,5.0.1,file:plugins\org.drools.eclipse.task_5.0.1.jar,4,false

          保存即可。

          再次啟動Eclipse就可以成功安裝插件,window----prefernces---drools插件,配置drools的依賴包環境,這些很簡單,省略。

          新建一個drools工程,就會看到一個附帶的helloworld的例子,執行java文件即可執行測試。

          Sample.drl

          package com.sample
           
          import com.sample.DroolsTest.Message;
           
          rule "Hello World"
              when
                  m : Message( status == Message.HELLO, myMessage : message )
              then
                  System.out.println( myMessage ); 
                  m.setMessage( "Goodbye cruel world" );
                  m.setStatus( Message.GOODBYE );
                  update( m );
          end

          rule "GoodBye"
              when
                  Message( status == Message.GOODBYE, myMessage : message )
              then
                  System.out.println( myMessage );
          end


          DroolsTest.java

           1package com.sample;
           2
           3import org.drools.KnowledgeBase;
           4import org.drools.KnowledgeBaseFactory;
           5import org.drools.builder.KnowledgeBuilder;
           6import org.drools.builder.KnowledgeBuilderError;
           7import org.drools.builder.KnowledgeBuilderErrors;
           8import org.drools.builder.KnowledgeBuilderFactory;
           9import org.drools.builder.ResourceType;
          10import org.drools.io.ResourceFactory;
          11import org.drools.logger.KnowledgeRuntimeLogger;
          12import org.drools.logger.KnowledgeRuntimeLoggerFactory;
          13import org.drools.runtime.StatefulKnowledgeSession;
          14
          15/**
          16 * This is a sample class to launch a rule.
          17 */

          18public class DroolsTest {
          19
          20    public static final void main(String[] args) {
          21        try {
          22            // load up the knowledge base
          23            KnowledgeBase kbase = readKnowledgeBase();
          24            StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
          25            KnowledgeRuntimeLogger logger = KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");
          26            // go !
          27            Message message = new Message();
          28            message.setMessage("Hello World");
          29            message.setStatus(Message.HELLO);
          30            ksession.insert(message);
          31            ksession.fireAllRules();
          32            logger.close();
          33        }
           catch (Throwable t) {
          34            t.printStackTrace();
          35        }

          36    }

          37
          38    private static KnowledgeBase readKnowledgeBase() throws Exception {
          39        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
          40        kbuilder.add(ResourceFactory.newClassPathResource("Sample.drl"), ResourceType.DRL);
          41        KnowledgeBuilderErrors errors = kbuilder.getErrors();
          42        if (errors.size() > 0{
          43            for (KnowledgeBuilderError error: errors) {
          44                System.err.println(error);
          45            }

          46            throw new IllegalArgumentException("Could not parse knowledge.");
          47        }

          48        KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
          49        kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
          50        return kbase;
          51    }

          52
          53    public static class Message {
          54        
          55        public static final int HELLO = 0;
          56        public static final int GOODBYE = 1;
          57
          58        private String message;
          59
          60        private int status;
          61
          62        public String getMessage() {
          63            return this.message;
          64        }

          65
          66        public void setMessage(String message) {
          67            this.message = message;
          68        }

          69
          70        public int getStatus() {
          71            return this.status;
          72        }

          73
          74        public void setStatus(int status) {
          75            this.status = status;
          76        }

          77        
          78    }

          79
          80}

          輸出:

          Hello World
          Goodbye cruel world



          -------------------------------------------------------------------------------------------------
          PS:本博客文章,如果沒有注明是有“轉”字樣,屬于本人原創。如果需要轉載,務必注明作者文章的詳細出處地址,否則不允許轉載,多謝合作!
          posted on 2010-01-17 21:08 apple0668 閱讀(6036) 評論(2)  編輯  收藏 所屬分類: drools

          評論:
          # re: eclipse3.4安裝drools插件手記[未登錄] 2012-01-20 13:48 | 啊啊
          撒旦法  回復  更多評論
            
          # re: eclipse3.4安裝drools插件手記[未登錄] 2012-01-20 13:50 | aa
          能否給出測試的是drools的那個版本啊 為什么4.0.7版本跟5的版本測試代碼區別很大,并且都需要依賴什么jar包呢  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 策勒县| 株洲市| 望奎县| 商城县| 敦化市| 灵武市| 文成县| 永顺县| 察雅县| 吴堡县| 黎城县| 磐安县| 辽阳县| 赤峰市| 宽甸| 白水县| 辽源市| 曲周县| 都匀市| 荆州市| 隆林| 县级市| 建阳市| 宝坻区| 沅陵县| 洛南县| 临安市| 什邡市| 辽源市| 庄河市| 红原县| 鸡东县| 班玛县| 湖南省| 寻甸| 越西县| 天等县| 潮州市| 桂林市| 无为县| 兰州市|