这两天玩了一下Guvnor。本来觉得官方文档真是写得太好了,我都没有什么必要写什么心得或者笔记了。之前写这些博客的想法很随意,主要原因都是因为学了一个东西,然后怕以后用的时候忘了,又从头开始,所以在CSDN上记一记,下次要用到的话,上来翻翻,会很快搞定吧。就是这么想的。学习用Guvnor,觉得官方文档写得很详细啊,直接看那个就可以了。
Guvnor的官网在这http://www.jboss.org/drools/drools-guvnor.html ,看文档的话直接去点Documentation就可以了。
工作快一年了,外企,好像有点习惯了看英文文档了。各位同行,一定要会看英文文档啊,搞这行,必须的。
先下载了个Guvnor的war包,可以发布到本地服务器的,这里我下载了个tomcat6.0版本的Guvnor war包:guvnor-distribution-wars-5.4.0.Beta2-tomcat-6.0.war,刚开始因为公司的网络限制,不让下载,然后我再Maven Center Repository上搜guvnor,竟然有啊,高兴死了,因为公司对这个东西是不禁的,可以下载。我已经有好多次感受到Maven是个好东西了,以前想学个什么东西,总苦于没有jar包,无法学啊,公司又不让下载,后来有了这个Maven Repository,这是要什么jar包都有了。Maven Repository的地址在这:http://search.maven.org/ 绝对好东西,我从这上面下载到guvnor 的war包后,为了访问起来简单,改名为guvnor.war,然后就可以发布到tomcat6了,没什么技术含量的。
刚开始启动tomcat时可能还有点错,它要建立库的,关掉tomcat重启就可以了。发布成功之后,可以直接访问的。Guvnor管理各种规则及其相关资源还是很强大的。
默认,没有修改任何配置的情况下,Guvnor会在你的{tomcat}/bin目录下生成一个repository目录和一个repository.xml文件,这就是用来配置库的。而且Guvnor默认内置的使用一个叫JackRabbit的小型嵌入式数据库来存储数据的,这个是Apache的一个项目了,和 H2差不多。现在很多开发的东西都用这些小型数据库作为Demo的。比如Activiti,开源的工作流,它用的就是H2了。Seam也用H2 做Demo的。当然,一般我们项目要用的话,都要改为我们自己的数据库的,比如Mysql,Oracle。这个Guvnor也是的。
配置Guvnor的库,很简单的。
首先,你可能不想把Repository和repository.xml放在tomcat的bin下面,太碍眼了,呵呵。那我建立一个D:/MyGuvnorRepo吧,放在这里。修改war包下面的某个配置:WEB-INF/beans.xml默认的内容有一段如下:
<!-- JackRabbit -->
<guvnorRepository:properties>
<s:entry><s:key>org.drools.repository.configurator</s:key><s:value>org.drools.repository.jackrabbit.JackrabbitRepositoryConfigurator</s:value></s:entry>
<!-- the root directory for the repo storage the directory must exist. -->
<!--<s:entry><s:key>repository.root.directory</s:key><s:value>/opt/yourpath</s:value></s:entry>-->
</guvnorRepository:properties>
英文注释写得很明白了,把那个被注掉的 “<s:entry><s:key>repository.root.directory</s:key>...” 打开,把<s:value>值改为D:/MyGuvnorRepo 就可以了,修改后的配置如下:
<guvnorRepository:properties>
<s:entry><s:key>org.drools.repository.configurator</s:key><s:value>org.drools.repository.jackrabbit.JackrabbitRepositoryConfigurator</s:value></s:entry>
<!-- the root directory for the repo storage the directory must exist. -->
<s:entry>
<s:key>repository.root.directory</s:key>
<s:value>D:/MyGuvnorRepo</s:value>
</s:entry>
</guvnorRepository:properties>
发现,本来D:/MyGuvnorRepo没有东西的,现在它给我们新建了一些东西,用来保存数据的,目前是JackRabbit用的哈,不多说,自己玩去。
接下来,要把数据库迁到mysql上了,也很简单啦。
上面我们不是已经把Guvnor运行起来了嘛,然后访问Guvnor,主界面上菜单上有个Administrator的菜单,里面有个Repository Management吧,点开,配置一下,下拉列表选择自己的数据库,比如Mysql,事先把mysql数据库建好,比如:create database guvnor; 不需要建表的哈。
填上URL,Driver,username,password ,然后配置,生成一个repository.xml的配置文件,里面的数据源都配置好的啦,直接代替D:/MyGuvnorRepo下面的那个文件,就可以将你的库数据切换到mysql上面了。
关于这个mysql的repository.xml就不贴出来,有兴趣自己玩去。另外,不要忘了将数据库的驱动jar包引入classpath,最简单的就是把jar包放到tomcat/lib下了,当然你也可以方法war包的WEB-INF/lib下面。
重新启动tomcat,数据表自动创建。现在的东西都是傻瓜化的。
关于Guvnor怎么使用,还是研读一下官方文档吧,写得很详细,我这里说就太班门弄斧了。
祝心情愉快。