中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

jbpm在tomcat和mysql上的遷移部署過程

發布時間:2021-08-23 22:48:45 來源:億速云 閱讀:115 作者:chen 欄目:數據庫

這篇文章主要講解了“jbpm在tomcat和mysql上的遷移部署過程”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“jbpm在tomcat和mysql上的遷移部署過程”吧!

 jBPM,全稱是Java Business Process Management,是一種基于J2EE的輕量級工作流管理系統。jBPM是公開源代碼項目,遵循Apache License。jBPM在2004年10月18日,發布了2.0版本,并在同一天加入了JBoss,成為了JBoss企業中間件平臺的一個組成部分,它的名稱也改成JBoss jBPM。

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

       從上面可以看出,jBPM是一個業務流程管理引擎,是一個工作流引擎。除此之外,它同時實現了對jPDL和對BPEL的支持。它整合
了Hibernate技術處理數據庫,創建了一系列的數據庫表,持久化工作流引擎所需的狀態。因此,jBPM支持所有Hibernate支持的數據庫,能
夠把Java對象持久化到數據庫中,把Hibernate支持的Java類的對象保存到數據庫中!

       你完全可以像用 Java 的類庫一樣使用JBoss jBPM,而且通過配置JBoss jBPM也可以被部署在其它J2EE應用服務器上和任何數據庫上。

       在本文中,我們首先來創建我們的JBoss jBPM運行開發環境。在開始之前,請準備一下軟件產品:

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

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

·MySQL 5.1 ,也可以選擇其它Hiberante 支持的數據庫,沒有太大差別,這里使用MySQL 5.1

·Apache Ant 1.7.0

·JBPM-3.2.3

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

說明:JBoss jBPM的發布包中已經配置好了一套服務環境,是基于JBoss的。因為我們習慣了Tomcat 的小巧靈活,而且我們也不希望jBPM依賴JBoss。

1. 下載安裝JDK,Tomcat, Ant, MySQL, 并設置相應的環境變量

 此步驟不再熬述,具體請查閱官方文檔

  Jdkhttp://java.sun.com/

  Anthttp://ant.apache.org/

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

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

 2. 下載JBoss jBPM

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

解壓jbpm-jpdl-suite-3.2.3.zip,這里解壓后得到D:/jbpm-jpdl-3.2.3,其主要目錄結構如下:

D:/jbpm-jpdl-3.2.3

|--- db    這里都是些sql定義和數據文件,如果改用其它數據庫,可以使用這些資源來創建,服務還是很周到的。順便

|             羅嗦一句,jBPM 默認使用的是內存數據庫 hsqldb ,這個數據庫還沒研究過(嘿嘿---)

|

|--- deploy  用來部署你的應用的包和資源

|

|--- designer  這里是Eclipse插件,這樣你就可以在圖形界面來定義你的業務流程,骨灰級人物沒他也能過日子

|

|--- doc  這里是jBPM相關組件的API 文檔

|

|--- examples  這里是些學習的例子

|

|--- lib  jBPM 的類庫

|

|--- server  這里有一個JBoss 服務器,并且包含了本JBoss jBPM引擎,還部署了websale例子

|

|--- src  這里是JBoss jBPM的源代碼

      3. 配置數據庫

      jBPM需要把初始化數據和工作流定義存儲到數據庫中,它定義了一套數據結構來存儲這些數據,這也是該容器本身的特點。

      在mysql 中創建一個數據庫 jbpm ,(create database jbpm;),并創建用戶jbossjbpm(密碼:jbossjbpm)

      說明:如果你嫌麻煩可以使用root賬號和其密碼,不過下面的設置請做相應的更改

      在D:/jbpm-jpdl-3.2.3/db 找到jbpm.jpdl.mysql.sql,
該文件必須修改一下,以符合MySQL的語法結構。具體就是在每條語句的末尾增加一個分號";"你可以借助 UltrEdit,
EditPlus等工具來做這些事情(注意替換時要注意匹配大小寫,有寫表的字段中包含CREATE字符),如果是第一次創建這些數據庫表,要刪除
create語句上面的alter和drop(這些表還都不存在)。

      4. 準備jBPM包

      這是個jbpm-jpdl流程管理控制臺,就像Tomcat有個單獨的Administrator應用用來管理配置和部署一樣的東東。有了他你可以在圖形界面來操作控制你的應用。

      打開命令行控制臺,切換到D:/jbpm-jpdl-3.2.3/deploy 目錄,執行以下命令:

      ant customize.console.for.tomcat

    注意:請確保你的ant安裝配置妥當,可以在命令行輸入:ant -version 來檢測ant 是否正確安裝。命令執行后能看到ant的版本信息即OK

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

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

Xml代碼 jbpm在tomcat和mysql上的遷移部署過程

  1. <hibernate-configuration>

  2.   <session-factory>


  3.     <!-- hibernate dialect -->

  4.     <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>


  5.     <!-- JDBC connection properties (begin) -->

  6.     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

  7.     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>

  8.     <property name="hibernate.connection.username">jbossjbpm</property>

  9.     <property name="hibernate.connection.password">jbossjbpm</property>

  10.      <!-- JDBC connection properties (end) -->


  11.     <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>


  12.     <!-- DataSource properties (begin) ==  

  13.     <property name="hibernate.connection.datasource">java:/JbpmDS</property>

  14.     == DataSource properties (end) -->

  15.     <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>

  16. ...   

<hibernate-configuration>
  <session-factory>

    <!-- hibernate dialect -->
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

    <!-- JDBC connection properties (begin) -->
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jbpm</property>
    <property name="hibernate.connection.username">jbossjbpm</property>
    <property name="hibernate.connection.password">jbossjbpm</property>
     <!-- JDBC connection properties (end) -->
    
    <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
    
    <!-- DataSource properties (begin) ==
    <property name="hibernate.connection.datasource">java:/JbpmDS</property>
    == DataSource properties (end) -->
    <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
...	

       這里就是啟用了 更換了默認的數據屬性,JDBC connection properties ,還有自己定義的數據名字和帳號,另外需要注意的是用

Xml代碼 jbpm在tomcat和mysql上的遷移部署過程

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

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

代替JTATransactionFactory和CMTTransactionFactory,想用JTATransactionFactory或CMTTransactionFactory配置也可以,不過還沒有研究過,有知道的朋友可以一起學習一下。

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

       這里主要是用到了Java Transaction Architecture, 所以你可以用J2EE中的jta.jar包還替換jboss-j2ee.jar。jta相關信息請參考:http://java.sun.com/javaee/technologies/jta/index.jsp

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

       
拷貝jsf-api.jar和jsf-impl.jar包至jbpm-console.war/WEB-INF/lib ,你可以在D:/jbpm-
jpdl-3.2.3/server/server/jbpm/deploy/jboss-web.deployer/jsf-libs種找到這兩個包。

        說明:因為jbpm-console是一個jsf應用,沒這兩個包,你訪問時會報404或505錯誤。

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

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

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

        5. 配置Tomcat 安全域

        方法一:在%CATALINA_HOME%/conf/Catalina/localhost 創建一個jbpm-console.xml 文件,內容如下:

Xml代碼 jbpm在tomcat和mysql上的遷移部署過程

  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>

<Context>
<Realm  className="org.apache.catalina.realm.JDBCRealm" 
	driverName="com.mysql.jdbc.Driver"
	connectionURL="jdbc:mysql://localhost:3306/jbpm"
	connectionName="jbossjbpm" 
	connectionPassword="jbossjbpm"
	userTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" 
	userNameCol="g.TYPE_ = 'security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_" 
	userCredCol="DISTINCT u.PASSWORD_"
	userRoleTable="JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g" 
	roleNameCol="g.NAME_" />
</Context>

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

Xml代碼 jbpm在tomcat和mysql上的遷移部署過程

  1. <?xml version='1.0' encoding='utf-8'?>


  2. <tomcat-users>


  3.   <role rolename="user"/>


  4.   <role rolename="administrator"/>


  5.   <role rolename="manager"/>


  6.   <role rolename="sales"/>


  7.   <role rolename="hr"/>


  8.   <role rolename="admin"/>


  9.   <role rolename="participant"/>


  10.   <user username="user" password="user" roles="user,sales"/>


  11.   <user username="shipper" password="shipper" roles="user,hr"/>


  12.   <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>


  13.   <user username="tadmin" password="" roles="admin,manager"/>

  14.   <user username="admin" password="admin" roles="admin,user,hr"/>

  15. </tomcat-users>

<?xml version='1.0' encoding='utf-8'?>

<tomcat-users>

  <role rolename="user"/>

  <role rolename="administrator"/>

  <role rolename="manager"/>

  <role rolename="sales"/>

  <role rolename="hr"/>

  <role rolename="admin"/>

  <role rolename="participant"/>

  <user username="user" password="user" roles="user,sales"/>

  <user username="shipper" password="shipper" roles="user,hr"/>

  <user username="manager" password="manager" roles="admin,hr,manager,user,sales"/>

  <user username="tadmin" password="" roles="admin,manager"/>
  <user username="admin" password="admin" roles="admin,user,hr"/>
</tomcat-users>

         6. 初始化數據

         在MySQL jbpm數據庫中插入以下數據

Sql代碼 jbpm在tomcat和mysql上的遷移部署過程

  1. INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);  


  2. INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);  


  3. INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);  


  4. INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);  


  5. INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);  


  6. INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');  


  7. INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');  


  8. INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');  


  9. INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');  


  10. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);  


  11. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);  


  12. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);  


  13. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);  


  14. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);  


  15. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);  


  16. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);  


  17. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);  


  18. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);  


  19. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);  


  20. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);  


  21. INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);  

INSERT INTO JBPM_ID_GROUP VALUES(1,'G','sales','organisation',NULL);

INSERT INTO JBPM_ID_GROUP VALUES(2,'G','admin','security-role',NULL);

INSERT INTO JBPM_ID_GROUP VALUES(3,'G','user','security-role',NULL);

INSERT INTO JBPM_ID_GROUP VALUES(4,'G','hr','organisation',NULL);

INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL);

INSERT INTO JBPM_ID_USER VALUES(1,'U','user','user@sample.domain','user');

INSERT INTO JBPM_ID_USER VALUES(2,'U','manager','manager@sample.domain','manager');

INSERT INTO JBPM_ID_USER VALUES(3,'U','admin','admin@sample.domain','admin');

INSERT INTO JBPM_ID_USER VALUES(4,'U','shipper','shipper@sample.domain','shipper');

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,4);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,4);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,4,4);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,4,3);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,3);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,NULL,2,3);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,3,3);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,3,2);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,2,2);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(10,'M',NULL,NULL,2,5);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(11,'M',NULL,'boss',2,1);

INSERT INTO JBPM_ID_MEMBERSHIP VALUES(12,'M',NULL,NULL,1,1);

      7. 啟動Tomcat 服務,查看控制臺的日志,排除錯誤,數據庫錯誤和支持庫不完整都可能導致錯誤。

      在瀏覽器中輸入:http://localhost:8080/jbpm 能正常訪問說明部署成功,你可以用頁面上列出的用戶和賬號登陸進去體驗一下。

感謝各位的閱讀,以上就是“jbpm在tomcat和mysql上的遷移部署過程”的內容了,經過本文的學習后,相信大家對jbpm在tomcat和mysql上的遷移部署過程這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漠河县| 金坛市| 乳源| 阿城市| 余江县| 威宁| 边坝县| 临海市| 青海省| 广昌县| 三亚市| 凤凰县| 蒙自县| 固阳县| 温州市| 屏山县| 和静县| 巴林左旗| 邵阳市| 赞皇县| 霍山县| 呈贡县| 江川县| 澄江县| 威信县| 古蔺县| 灵川县| 新乡县| 长岛县| 乌苏市| 大渡口区| 汝州市| 林西县| 城口县| 沈丘县| 寿宁县| 米脂县| 开原市| 尼木县| 赤城县| 吉首市|