自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

JBoss jBPM安裝配置(Tomcat 6.0+MySQL 5.1)

開(kāi)發(fā) 后端
本文全面的介紹了jBPM的特色,并描述了JBoss jBPM的安裝配置。JBoss jBPM運(yùn)行開(kāi)發(fā)環(huán)境的創(chuàng)建需要JDK 1.5或者更高版本。

jBPM,全稱(chēng)是Java Business Process Management,是一種基于J2EE的輕量級(jí)工作流管理系統(tǒng)。jBPM是公開(kāi)源代碼項(xiàng)目,遵循Apache License。jBPM在2004年10月18日,發(fā)布了2.0版本,并在同一天加入了JBoss,成為了JBoss企業(yè)中間件平臺(tái)的一個(gè)組成部分,它的名稱(chēng)也改成JBoss jBPM。

jBPM有兩大特色,使他成為市場(chǎng)的一大兩點(diǎn)。其中最大的特色就是它的業(yè)務(wù)邏輯定義沒(méi)有采用目前的一些規(guī)范,如WfMC´s XPDL, BPML, ebXML, BPEL4WS等,而是它自己定義的JBoss jBPM Process definition language (jPdl)。jPdl把一個(gè)業(yè)務(wù)邏輯流程看作是一個(gè)UML狀態(tài)圖,如果你不熟悉UML狀態(tài)圖,那初學(xué)計(jì)算機(jī)語(yǔ)言的流程圖應(yīng)該熟悉吧,表達(dá)的方式和意思大同小異。jPdl詳細(xì)定義了這個(gè)狀態(tài)圖的每個(gè)部分,如起始、結(jié)束狀態(tài),狀態(tài)之間的轉(zhuǎn)換等;其另一大特色就是集成Hibernate,確切的說(shuō)是綁定,使用Hibernate來(lái)管理數(shù)據(jù)庫(kù),這樣jBPM只專(zhuān)注于他的業(yè)務(wù)流程控制。

從上面可以看出,jBPM是一個(gè)業(yè)務(wù)流程管理引擎,是一個(gè)工作流引擎。除此之外,它同時(shí)實(shí)現(xiàn)了對(duì)jPDL和對(duì)BPEL的支持。它整合了Hibernate技術(shù)處理數(shù)據(jù)庫(kù),創(chuàng)建了一系列的數(shù)據(jù)庫(kù)表,持久化工作流引擎所需的狀態(tài)。因此,jBPM支持所有Hibernate支持的數(shù)據(jù)庫(kù),能夠把Java對(duì)象持久化到數(shù)據(jù)庫(kù)中,把Hibernate支持的Java類(lèi)的對(duì)象保存到數(shù)據(jù)庫(kù)中!

你完全可以像用 Java 的類(lèi)庫(kù)一樣使用JBoss jBPM,而且通過(guò)配置JBoss jBPM也可以被部署在其它J2EE應(yīng)用服務(wù)器上和任何數(shù)據(jù)庫(kù)上。

在本文中,我們首先來(lái)創(chuàng)建我們的JBoss jBPM運(yùn)行開(kāi)發(fā)環(huán)境。在開(kāi)始之前,請(qǐng)準(zhǔn)備一下軟件產(chǎn)品:

·JDK 1.5 或者更高版本, 這里使用JDK 6u10b

·Apache Tomcat 5.5.x或更高版本,這里使用Tomcat 6.0.16

·MySQL 5.1 ,也可以選擇其它Hiberante 支持的數(shù)據(jù)庫(kù),沒(méi)有太大差別,這里使用MySQL 5.1

·Apache Ant 1.7.0

·JBPM-3.2.3

·Eclipse Europa(Eclipse V3.3) for JavaEE Developers或更高, 這里使用Eclipse V3.4

說(shuō)明:JBoss jBPM的發(fā)布包中已經(jīng)配置好了一套服務(wù)環(huán)境,是基于JBoss的。因?yàn)槲覀兞?xí)慣了Tomcat 的小巧靈活,而且我們也不希望jBPM依賴(lài)JBoss。

下載安裝JDK,Tomcat, Ant, MySQL, 并設(shè)置相應(yīng)的環(huán)境變量

此步驟不再熬述,具體請(qǐng)查閱官方文檔

Jdk:http://java.sun.com/

Ant:http://ant.apache.org/

Tomcat:http://tomcat.apache.org/

Eclipse:http://www.eclipse.org/

下載JBoss jBPM

JBoss jBPM 官方(http://www.jboss.org/jbossjbpm/)當(dāng)前發(fā)布的版本為 3.2.3, 只需要下載jPDL Suite,下載后得到j(luò)bpm-jpdl-suite-3.2.3.zip,這個(gè)套件包含了所有的內(nèi)容和資源,包括eclipse插件,示例,和流程管理控制應(yīng)用。

解壓jbpm-jpdl-suite-3.2.3.zip,這里解壓后得到D:jbpm-jpdl-3.2.3,其主要目錄結(jié)構(gòu)如下:

D:jbpm-jpdl-3.2.3
|--- db 這里都是些sql定義和數(shù)據(jù)文件,如果改用其它數(shù)據(jù)庫(kù),可以使用這些資源來(lái)創(chuàng)建,服務(wù)還是很周到的。順便
| 羅嗦一句,jBPM 默認(rèn)使用的是內(nèi)存數(shù)據(jù)庫(kù) hsqldb ,這個(gè)數(shù)據(jù)庫(kù)還沒(méi)研究過(guò)(嘿嘿---)
|
|--- deploy 用來(lái)部署你的應(yīng)用的包和資源
|
|--- designer 這里是Eclipse插件,這樣你就可以在圖形界面來(lái)定義你的業(yè)務(wù)流程,骨灰級(jí)人物沒(méi)他也能過(guò)日子
|
|--- doc 這里是jBPM相關(guān)組件的API 文檔
|
|--- examples 這里是些學(xué)習(xí)的例子
|
|--- lib jBPM 的類(lèi)庫(kù)
|
|--- server 這里有一個(gè)JBoss 服務(wù)器,并且包含了本JBoss jBPM引擎,還部署了websale例子
|
|--- src 這里是JBoss jBPM的源代碼

配置數(shù)據(jù)庫(kù)

jBPM需要把初始化數(shù)據(jù)和工作流定義存儲(chǔ)到數(shù)據(jù)庫(kù)中,它定義了一套數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)這些數(shù)據(jù),這也是該容器本身的特點(diǎn)。

在mysql 中創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) jbpm ,(create database jbpm;),并創(chuàng)建用戶jbossjbpm(密碼:jbossjbpm)

說(shuō)明:如果你嫌麻煩可以使用root賬號(hào)和其密碼,不過(guò)下面的設(shè)置請(qǐng)做相應(yīng)的更改

在D:jbpm-jpdl-3.2.3db 找到j(luò)bpm.jpdl.mysql.sql, 該文件必須修改一下,以符合MySQL的語(yǔ)法結(jié)構(gòu)。具體就是在每條語(yǔ)句的末尾增加一個(gè)分號(hào)";"你可以借助 UltrEdit, EditPlus等工具來(lái)做這些事情(注意替換時(shí)要注意匹配大小寫(xiě),有寫(xiě)表的字段中包含CREATE字符),如果是第一次創(chuàng)建這些數(shù)據(jù)庫(kù)表,要?jiǎng)h除create語(yǔ)句上面的alter和drop(這些表還都不存在)。

準(zhǔn)備jBPM包

這是個(gè)jbpm-jpdl流程管理控制臺(tái),就像Tomcat有個(gè)單獨(dú)的Administrator應(yīng)用用來(lái)管理配置和部署一樣的東東。有了他你可以在圖形界面來(lái)操作控制你的應(yīng)用。

打開(kāi)命令行控制臺(tái),切換到D:jbpm-jpdl-3.2.3deploy 目錄,執(zhí)行以下命令:

ant customize.console.for.tomcat

注意:請(qǐng)確保你的ant安裝配置妥當(dāng),可以在命令行輸入:ant -version 來(lái)檢測(cè)ant 是否正確安裝。命令執(zhí)行后能看到ant的版本信息即OK

ant customize.console.for.tomcat 執(zhí)行成功后,會(huì)在D:jbpm-jpdl-3.2.3deploy 目錄下生成customized和target目錄,其中customized目錄下的jbpm-console.war即是我們想要的war包。

我們需要修改jbpm-console.war/WEB-INF/classes/hibernate.cfg.xml 文件,以適應(yīng)我們的資源屬性的需要。修改后的結(jié)果如下:

Xml代碼

  1. hibernate-configuration>   
  2.  session-factory>   
  3.    
  4.  ﹤!-- hibernate dialect -->   
  5.  property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect﹤/property>   
  6.    
  7.  ﹤!-- JDBC connection properties (begin) -->   
  8.  property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver﹤/property>   
  9.  property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm﹤/property>   
  10.  property name="hibernate.connection.username">jbossjbpm﹤/property>   
  11.  property name="hibernate.connection.password">jbossjbpm﹤/property>   
  12.  ﹤!-- JDBC connection properties (end) -->   
  13.    
  14.  property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider﹤/property>   
  15.    
  16.  ﹤!-- DataSource properties (begin) ==   
  17.  property name="hibernate.connection.datasource">java:/JbpmDS﹤/property>   
  18.  == DataSource properties (end) -->   
  19.  property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory﹤/property>   
  20. ...  

這里就是啟用了 更換了默認(rèn)的數(shù)據(jù)屬性,JDBC connection properties ,還有自己定義的數(shù)據(jù)名字和帳號(hào),另外需要注意的是用

Xml代碼

  1. property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory﹤/property>  

代替JTATransactionFactory和CMTTransactionFactory,想用JTATransactionFactory或CMTTransactionFactory配置也可以,不過(guò)還沒(méi)有研究過(guò),有知道的朋友可以一起學(xué)習(xí)一下。

拷貝jboss-j2ee.jar包至jbpm-console.war/WEB-INF/lib 。發(fā)布包下(D:jbpm-jpdl-3.2.3)很多地方都有這個(gè)包你可以找一下,比如 D:jbpm-jpdl-3.2.3serverclient。

這里主要是用到了Java Transaction Architecture, 所以你可以用J2EE中的jta.jar包還替換jboss-j2ee.jar。

拷貝commons-collections.jar 包至jbpm-console.war/WEB-INF/lib 。發(fā)布包下(D:jbpm-jpdl-3.2.3)好幾處都有這個(gè)包,比如 D:jbpm-jpdl-3.2.3serverserverjbpmlib 。這個(gè)包是Apache Commons包,到處都找的的到。

拷貝jsf-api.jar和jsf-impl.jar包至jbpm-console.war/WEB-INF/lib ,你可以在D:jbpm-jpdl-3.2.3serverserverjbpmdeployjboss-web.deployerjsf-libs種找到這兩個(gè)包。

說(shuō)明:因?yàn)閖bpm-console是一個(gè)jsf應(yīng)用,沒(méi)這兩個(gè)包,你訪問(wèn)時(shí)會(huì)報(bào)404或505錯(cuò)誤。

拷貝MySQL JDBC驅(qū)動(dòng)程序包至%CATALINA_HOME%/lib (Tomcat 6)或%CATALINA_HOME%/common/lib(Tomcat 5.5)

拷貝修改后的jbpm-console至%CATALINA_HOME%/webapps

這樣jBPM基本上配置完成,但是我們還不能訪問(wèn)他,還需要配置安全訪問(wèn)控制和初始的用戶數(shù)據(jù)

配置Tomcat 安全域

方法一:在%CATALINA_HOME%/conf/Catalina/localhost 創(chuàng)建一個(gè)jbpm-console.xml 文件,內(nèi)容如下:

Xml代碼

  1. Context>   
  2. Realm className="org.apache.catalina.realm.JDBCRealm"   
  3.  driverName="com.mysql.jdbc.Driver"   
  4.  connectionURL="jdbc:mysql://localhost:3306/jbpm"   
  5.  connectionName="jbossjbpm"   
  6.  connectionPassword="jbossjbpm"   
  7.  userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"   
  8.  userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_"   
  9.  userCredCol="DISTINCT u.PASSWORD_"   
  10.  userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g"   
  11.  roleNameCol="g.NAME_" />   
  12. ﹤/Context>  

方法二:修改 %CATALINA_HOME%/conf/tomcat-users.xml文件來(lái)設(shè)置安全域。為了不和tomcat已有的用戶沖突,這里把 tomcat以前的登陸帳號(hào)username="admin" 修改為username="tadmin",修改后的文件如下:

Xml代碼

  1. ﹤?xml version='1.0' encoding='utf-8'?>   
  2.    
  3. tomcat-users>   
  4.    
  5.  role rolename="user"/>   
  6.    
  7.  role rolename="administrator"/>   
  8.    
  9.  role rolename="manager"/>   
  10.    
  11.  role rolename="sales"/>   
  12.    
  13.  role rolename="hr"/>   
  14.    
  15.  role rolename="admin"/>   
  16.    
  17.  role rolename="participant"/>   
  18.    
  19.  user username="user" password="user" roles="user,sales"/>   
  20.    
  21.  user username="shipper" password="shipper" roles="user,hr"/>   
  22.    
  23.  user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>   
  24.    
  25.  user username="tadmin" password="" roles="admin,manager"/>   
  26.  user username="admin" password="admin" roles="admin,user,hr"/>   
  27. ﹤/tomcat-users> 

 

初始化數(shù)據(jù)

在MySQL jbpm數(shù)據(jù)庫(kù)中插入以下數(shù)據(jù)

Sql代碼

  1. INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);   
  2.    
  3. INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);   
  4.    
  5. INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);   
  6.    
  7. INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);   
  8.    
  9. INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);   
  10.    
  11. INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');   
  12.    
  13. INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');   
  14.    
  15. INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');   
  16.    
  17. INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');   
  18.    
  19. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);   
  20.    
  21. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);   
  22.    
  23. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);   
  24.    
  25. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);   
  26.    
  27. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);   
  28.    
  29. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);   
  30.    
  31. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);   
  32.    
  33. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);   
  34.    
  35. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);   
  36.    
  37. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);   
  38.    
  39. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);   
  40.    
  41. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);  

啟動(dòng)Tomcat 服務(wù),查看控制臺(tái)的日志,排除錯(cuò)誤,數(shù)據(jù)庫(kù)錯(cuò)誤和支持庫(kù)不完整都可能導(dǎo)致錯(cuò)誤。

在瀏覽器中輸入:http://localhost:8080/jbpm 能正常訪問(wèn)說(shuō)明部署成功,你可以用頁(yè)面上列出的用戶和賬號(hào)登陸進(jìn)去體驗(yàn)一下。

【編輯推薦】

  1. jBPM 4.0.0.Beta2版本發(fā)布
  2. Equinox動(dòng)態(tài)化深入分析
  3. J2EE工作流管理系統(tǒng)jBPM詳解(一)
  4. J2EE工作流管理系統(tǒng)jBPM詳解(二)
  5. JBoss 發(fā)布Java工作流引擎jBPM 3.1 Final
責(zé)任編輯:yangsai 來(lái)源: 網(wǎng)絡(luò)
相關(guān)推薦

2009-07-09 13:15:20

JDK1.6.0 To

2009-06-11 13:43:21

jBPM用戶指南jBPM 4.0

2010-02-05 13:37:07

Ubuntu安裝

2009-07-08 15:20:36

JDK 6.0的安裝配Fedora 8

2009-07-06 17:49:02

Apache的配置JBoss的配置

2009-11-25 10:18:25

linuxapache tomc虛擬主機(jī)

2009-07-07 15:41:56

myeclipse配置Tomcat安裝tomcat插件

2009-07-10 10:53:31

MyEclipse6.

2009-06-23 15:30:20

jBPMMySQL

2017-05-19 09:03:17

MySQL安裝方案

2011-08-30 11:00:10

MySQL ProxyLua

2020-09-25 17:10:13

LinuxMySQL 8.0

2011-02-25 17:48:52

2010-06-07 11:22:28

2011-02-23 10:43:17

2011-03-02 10:41:41

Vsftpd安裝

2011-04-01 15:00:35

2011-04-02 14:21:46

MRTG安裝

2009-06-15 14:16:17

JBoss與Tomca

2009-06-19 18:19:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)