`
329937021
  • 浏览: 124693 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JBPM 3.3.0 + JBOSS 4.2.3 + ORACLE 9i收藏

阅读更多
[size=large][size=x-large][size=x-large]转:colorknight的专栏 原文地址:http://blog.csdn.net/colorknight/archive/2008/12/11/3495408.aspx


        最近因为工作需要想研究一下jbpm,看过相关文档后知道jbpm3.3有了安装包比前面的版本有了提升。可安装的时候才发现事情远没有想得那么简单,尤其是在使用安装包不支持的数据库时。于是,呕心沥血:)在网上查找相关资料,自己尝试,总结出下面的安装过程。



    1.用jbpm-installer-3.3.0.GA.jar安装,安装过程中指定好JBOSS目录。因为缺省情况下安装包不支持ORACLE,所以从安装界面随便选定一种数据库安装就可以。安装完后,在安装路径下会产生一个jbpm-3.3.0.GA的目录(以下以${JBPM3.3}表示)。在${JBOSSPATH}/server/default/deploy/路径下会产生一个jbpm的目录(以下以${JBOSS-JBPM}表示)。第一步完成。

    2.配置Oracle数据源。

        2.1配置ORACLE连接驱动。在${JBOSS-JBPM}路径下存在一个“*-ds.xml”的文件,“*”与安装过程选的数据库名一致,可能还有一个向关的数据库驱动jar包,我们在这里将它删除。然后将oracle的驱动ojdbc14.jar拷一份过来,然后我们再写一个oracle-ds.xml。什么,不会写!没关系,你可以从${JBOSSPATH}/docs/examples/jca目录下拷一份出来,然后修改成你需要的地址和数据库名。

        2.2向ORACLE导入JBPM数据。随便找个ORACLE客户端,如TOAD等,将${JBPM3.3}/database/jbpm.jpdl.oracle.sql文件中的sql脚本执行一遍。数据库建完。

        2.3配置hibernate。打开${JBOSS-JBPM}/jbpm-service.sar/hibernate.cfg.xml文件,将<property name="hibernate.dialect">的值改为org.hibernate.dialect.Oracle9Dialect。

    OK!安装完成!看看效果吧!

    输入地址http://localhost:8080/jbpm-console看到下面这个页面

[img][/img]


    好好吧,让我们试着登陆一下!抱歉,现在你没有办法登上,认证授权还不支持。下面,我们继续努力!

    3.安装jbpm-console认证授权。

    3.1在oracle生成相关认证数据表。没有合适的数据,自己按照页面上的用户情况生成了如下数据库脚本:

create table JBPM_ID_GROUP (ID_ number(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ number(19,0), primary key (ID_));

create table JBPM_ID_MEMBERSHIP (ID_ number(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ number(19,0), GROUP_ number(19,0), primary key (ID_));

create table JBPM_ID_PERMISSIONS (ENTITY_ number(19,0) not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255));

create table JBPM_ID_USER (ID_ number(19,0) not null, CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_));

alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP;

alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP;

alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER;

insert into JBPM_ID_USER (ID_, CLASS_, NAME_, EMAIL_, PASSWORD_) values ('1', 'U', 'user', 'sample.user@sample.domain', 'user');

insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('2', 'U', 'manager', 'sample.manager@sample.domain', 'manager');

insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('3', 'U', 'shipper', 'sample.shipper@sample.domain', 'shipper');

insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('4', 'U', 'admin', 'sample.admin@sample.domain', 'admin');

insert into JBPM_ID_GROUP VALUES(1,'G','admin','security-role',NULL);

insert into JBPM_ID_GROUP VALUES(2,'G','manager','security-role',NULL);

insert into JBPM_ID_GROUP VALUES(3,'G','user','organisation',NULL);

insert into JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,'user',1,3);

insert into JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,'admin',2,1);

insert into JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,'manager',2,2);

insert into JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,'user',2,3);

insert into JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,'user',3,3);

insert into JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,'admin',4,1);

insert into JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,'user',4,3);

把这些脚本在oracle中执行一遍。

    3.2配置login-config.xml。打开${JBOSSPATH}/server/default/conf/login-config.xml文件,在文件中加入

       <application-policy name = "jbpm-console">

              <authentication>

                <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule"

                              flag="required">

                  <module-option name="dsJndiName">java:/JbpmDS</module-option>

                  <module-option name="principalsQuery">

                    SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=?

                  </module-option>

                  <module-option name="rolesQuery">

                    SELECT g.NAME_ ,'Roles'

                    FROM JBPM_ID_USER u,

                         JBPM_ID_MEMBERSHIP m,

                         JBPM_ID_GROUP g

                    WHERE g.TYPE_='security-role'

                      AND m.GROUP_ = g.ID_

                      AND m.USER_ = u.ID_

                      AND u.NAME_=?

                  </module-option>

                </login-module>

              </authentication>

       </application-policy>

   其中jbpm-console必须与${JBOSS-JBPM}/jbpm-enterprise-bundle.ear/jsf-console.war/WEB-INF/jboss-web.xml中的<security-domain>所设置的名字一致。

3.3设置web.xml。打开${JBOSS-JBPM}/jbpm-enterprise-bundle.ear/jsf-console.war/WEB-INF/web.xml文件。文件中有如下一段:

    <!--

       This role list should be changed to include all the relevant roles for your

       environment.

    -->

    <security-role>

        <role-name>admin</role-name>

    </security-role>

    <security-role>

        <role-name>user</role-name>

    </security-role>



    <!--

       Security constraints - optionally customize the role name to require

       a login before access is allowed to the application.



       Also, be sure to edit jboss-web.xml to configure the security domain if you are

       deploying inside JBoss AS.

    -->

    <security-constraint>

        <web-resource-collection>

            <web-resource-name>Secure Area</web-resource-name>

            <url-pattern>/sa/*</url-pattern>

            <http-method>GET</http-method>

            <http-method>POST</http-method>

        </web-resource-collection>

        <auth-constraint>

            <role-name>user</role-name>

            <role-name>admin</role-name>

        </auth-constraint>

</security-constraint>

在<auth-constraint>标签内增加一个值为admin的<role-name>标签,这样admin用户就可以登陆jbpm-console了。

大功告成!开始你的jbpm体验之旅吧!
  • 大小: 47.7 KB
分享到:
评论

相关推荐

    maven+jbpm4.4+Jboss5.0

    父项目中,根据Maven的规范,配置了相关依赖包的引用,包括:Jbpm4.4的引用包引用、Junit4.9的测试包引用,hibernate的引用包,以及应用服务器Jboss的Client引用等。 接口中,提供了部署流程、创建实例、获得当前...

    jbpm-3.2.6.SP1在jboss-4.2.3.GA 链接Oracle

    jbpm-3.2.6.SP1默认安装在jboss-4.2.3.GA下不支持Oracle,对配置文件进行修改,内有详细的文档说明。解压后直接将文件夹jbpm3覆盖到jboss-4.2.3.GA\server\default\deploy\jbpm,注意拷贝oracle的jdbc驱动到jboss-4.2.3...

    Extjs4+jbpm4+SSH+oracle.zip

    SSH2+JBPM+ExtJs4实战,JBPM是重点讲解。实战与demo的区别我不再多说,在以前工作中走过一些弯路,一些实现都是靠自己想象或者听其他人应该怎么实现才是项目中真正需要的。JBPM书上是讲解以工作流为核心去开发应用,...

    ExtJs4.1+Jbpm4+SSH2+Oracle10g实际项目源码

    SSH2+JBPM+ExtJs4实战,JBPM是重点讲解。实战与demo的区别我不再多说,在以前工作中走过一些弯路,一些实现都是靠自己想象或者听其他人应该怎么实现才是项目中真正需要的。JBPM书上是讲解以工作流为核心去开发应用,...

    jbpm_jboss+oracle

    jbpm_jboss+oracle集成是将业务流程管理(BPM)框架Jbpm与Java应用服务器JBoss以及Oracle数据库相结合的过程。Jbpm是一个开源的工作流管理系统,它提供了业务流程的建模、部署、执行和监控功能。Oracle数据库则是一...

    jbpm4.4+ssh+oracle + jqueryeasyui请假审批系统

    该压缩包文件“jbpm4.4+ssh+oracle + jqueryeasyui请假审批系统”包含了一个基于特定技术栈的工作流管理应用,旨在实现一个完整的请假审批流程。这个系统利用了jbpm4.4(Java Business Process Management)作为工作...

    jbpm4.3+servlet+jsp

    【jbpm4.3】是Java Business Process Management(Java业务流程管理)的一个版本,它是一个开源的工作流和业务流程管理系统,用于设计、执行和管理业务流程。jbpm4.3是一个较老的版本,但仍然包含了大量的核心功能,...

    SSH所有jar+jbpm+json+extjs

    标题中的"SSH所有jar+jbpm+json+extjs"提到了几个关键的软件开发组件,这些组件在Java Web开发中扮演着重要角色。SSH是一个常见的缩写,它代表Spring、Struts和Hibernate三个框架,它们是Java企业级应用开发的基石。...

    jbpm教程+中文用户指南

    jbpm,全称为Java Business Process Management,是一款开源的工作流管理系统,用于实现业务流程自动化和管理。这个"jbpm教程+中文用户指南"包含了对jbpm的深入理解和实践操作的资源,旨在帮助用户快速掌握该技术。 ...

    jbpm 5.0 jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版

    jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版jboss jbpm 5.0 最新版

    请假审批系统-jbpm4.4+ssh+oracle +easyui

    本项目是一个基于jbpm4.4、SSH(Struts2、Spring、Hibernate)框架和Oracle数据库的请假审批系统,同时采用了EasyUI进行前端界面设计。这个系统为用户提供了一个直观、高效的请假申请和审批流程,适合初学者学习和...

    jbpm4.4+ssh整合

    jbpm4.4+ssh整合还需要安装插件进入到myeclipse中 将相应的jar文件放进去 就能够运行 jbpm4.4 jar ssh(strut2,hibernate3,spring3)三大框架整合的jar包 例子是 请假流程 代码中有很好的注释 便于初学者学习

    JBoss jBPM

    JBoss jBPM 是一个复杂的可扩展的工作流管理系统. JBoss jBPM 有直观的流程语言来表示商业流程图的术语比如,任务,异步通讯的等待状态,定时器,自动操作等等.把这些操作绑在一起,, JBoss jBPM 就有了最强大和易扩展性...

    JBPM4.4+SSH2完整整合jar包 part1

    JBPM4.4整合SSH2的完整jar包,绝对可用!(注:此为第一部分,需要下载第二部分一起解压才可用,下载地址:http://download.csdn.net/detail/zf723182723/4385173)

    jbpm4+struts2案例

    【jbpm4+Struts2案例详解】 jbpm4与Struts2的结合是一个常见的企业级应用架构,用于实现业务流程管理和用户界面交互。jbpm4是一个强大的工作流和业务流程管理框架,它允许开发者定义、执行和监控复杂的业务流程。而...

    jbpm4.4+s2sh请假流程例子

    首先,jbpm4是JBoss公司开发的一款开源的工作流管理系统,它允许开发者通过图形化的建模工具设计流程,并将其编译为可执行的流程定义。在4.4版本中,jbpm引入了更加强大的流程设计、执行和监控功能,支持复杂的业务...

    SpringMVC+jbpm+ibatis+Hibernate框架

    SpringMVC、jbpm、iBatis和Hibernate是四个在Java开发中广泛使用的框架,它们在构建企业级应用中各自扮演着重要的角色。下面将详细解释这些技术以及它们如何协同工作。 SpringMVC是Spring框架的一个模块,专门用于...

    jbpm4.4+ssh

    【jbpm4.4+SSH】是一个集成的Java企业级应用框架,主要涉及的是工作流管理系统jbpm4.4与Spring、Struts2(SSH)三大框架的整合。jbpm4是一个开源的工作流程管理系统,它提供了流程定义、执行、监控和优化等一系列...

    jbpm4+spring+hibernate

    【jbpm4+spring+hibernate】是一个集成示例,展示了如何将业务流程管理工具Jbpm4与Spring框架和Hibernate ORM库协同工作。这个示例主要关注于在企业级应用中实现工作流管理和数据持久化。让我们深入探讨这三个技术...

Global site tag (gtag.js) - Google Analytics