`

学习osworkflow

阅读更多
这段时间一直在看工作流相关的资料。
了解了WfMC工作流相关模型,网上也有不少资料,像IBM有专门的redbook介绍其MQSeries工作流的产品。网上像银狐等都是对工作流的研究比较深入的网友。


工作流引擎的作用:
通过在业务领域引入工作流引擎,可以将业务逻辑中流程配置的部分进行解耦,使产品或者项目有良好的架构和灵活性。
当然一个企业级的应用,需要的部件很多。单纯的工作流引擎也是解决不了太多问题的。

这几天在研究osworkflow。
作为一款开源的工作流引擎,确实是感觉到了它的灵活和强大。灵活且功能强大的bean shell脚本语言,简单易懂的工作流配置等等都让人很方便就可以上手。
目前只是大致感觉到,osworkflow写太多的工作流程配置信息到.xml配置文件中,感觉配置文件臃肿。它提供的流程图形编辑器功能有限。目前基本上是依靠手工来编写。

通过osworkflow所附带的例子,就基本能了解它的基本功能。

这里呢,写写修改osworkflow的例程,将数据持久化通过hibernate持久化到数据库的过程吧,权当练练手。

1.修改WEB-INF\classes\目录下的osworkflow.xml,改为

     <persistence class="com.opensymphony.workflow.spi.hibernate.HibernateWorkflowStore">
     </persistence>

2.将下面的Hibernate.cfg.xml加到WEB-INF\classes\下面,这里使用mysql数据库。

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- properties -->
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="connection.url">jdbc:mysql://redhat:3306/osworkflow</property>
<property name="connection.username">redhat</property>
<property name="connection.password">redhat</property>

<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="use_outer_join">true</property>

<property name="connection.pool_size">10</property>
<property name="statement_cache.size">25</property>

<property name="hibernate.hbm2ddl.auto">update</property>

<mapping resource="com/opensymphony/workflow/spi/hibernate/HibernateCurrentStep.hbm.xml"></mapping>
<mapping resource="com/opensymphony/workflow/spi/hibernate/HibernateHistoryStep.hbm.xml"></mapping>
<mapping resource="com/opensymphony/workflow/spi/hibernate/HibernateWorkflowEntry.hbm.xml"></mapping>
<mapping resource="com/opensymphony/module/propertyset/hibernate/PropertySetItemImpl.hbm.xml"></mapping>

</session-factory>
</hibernate-configuration>

3.把hibernate的jar及hibernate所有要到的jar,到WEB-INF\lib\
4.OSWorkflow要求客户端提供SessionFactory,自主控制session和transaction。在容器里可以直接生成SessionFactory然后注入到 workflow中。这里只是演示,所以直接修改.jsp文件,生成SessionFactory,传入workflow中。


    Workflow wf = new BasicWorkflow((String) session.getAttribute("username"));

// osworkflow和hibernate竟然都是通过Configuration类来进行配置的,没办法,谁让大家都需要进行配置而就那么几个单词呢
com.opensymphony.workflow.config.Configuration conf = new DefaultConfiguration();

SessionFactory sessionFactory = new net.sf.hibernate.cfg.Configuration().configure().buildSessionFactory();
conf.getPersistenceArgs().put("sessionFactory", sessionFactory);
wf.setConfiguration(conf);

5.OK搞定。
分享到:
评论

相关推荐

    osworkflow_bundle2

    "osworkflow_bundle2" 是一个专门用于学习 OSWorkflow 的示例集合,它包含了一系列的资源和实例,帮助用户理解并掌握如何使用这个强大的工作流框架。在这个压缩包中,你将找到 "osworkflow_bundle" 文件,这是该学习...

    osworkflow指导文档 + 源码

    **osWorkflow 指导文档 + 源码详解** osWorkflow 是一款开源的工作流引擎,主要用于处理业务流程...通过深入学习 osWorkflow 的指导文档和源码,开发者能够更好地理解和定制工作流,从而提高应用程序的业务处理能力。

    osworkflow-2.8.0-example.war

    这个压缩包包含了一个完整的Web应用程序,可以直接在Java应用服务器上部署,帮助开发者快速上手并深入学习OSWorkflow的用法。 首先,我们需要了解OSWorkflow是什么。OSWorkflow是一个开源的工作流程管理系统,用于...

    osworkflow开发指南

    6. **事件与监听器**:学习osWorkFlow中的事件机制,如何设置监听器以响应流程中的特定事件,如任务完成、流程结束等。 7. **持久化策略**:了解osWorkFlow如何存储和检索流程数据,以及如何自定义持久化策略以适应...

    OSWorkflow工作流程源码(JAVA/JSP)

    - **osworkflow-2.7.0-example.war**: 示例应用,包含了OSWorkflow的使用示例,可部署在Servlet容器中运行,帮助开发者快速了解和学习OSWorkflow的使用。 - **docs**: 文档目录,包含API文档和其他技术文档,是理解...

    osworkflow学习笔记

    通过osworkflow项目的学习和实践,总结出的一套osworkflow工作流引擎的学习笔记,供需要使用osworkflow系统的同学们借鉴,谢谢!

    OSWorkflow-2.8.0

    学习OSWorkflow时,你需要了解以下几个关键概念: - **流程定义**:定义了工作流的结构,包括步骤、参与者、决策节点等。 - **工作流实例**:是流程定义的一个具体执行,每个实例都有其唯一的ID。 - **步骤**:工作...

    osworkflow-developer-guide(学习资料)

    通过阅读《osworkflow-developer-guide.pdf》,开发者可以系统性地学习OSWorkflow的各个方面,包括基本概念、配置、编程接口以及最佳实践。这份指南是深入理解并成功应用OSWorkflow的宝贵资源,对于那些希望提升业务...

    osworkflow成功案例后的总结和升级方案

    标题“osworkflow成功案例后的总结和升级方案”表明了这篇内容是关于...这篇内容对想要学习osworkflow或正在使用osworkflow的开发者来说,将提供宝贵的实战经验和升级策略,有助于他们更好地理解和运用这个工具。

    osworkflow-example-demo.rar_DEMO_com.example.demo_osworkflow e

    OSWorkflow 是一个强大的...总之,"osworkflow-example-demo.rar"为学习OSWorkflow提供了一个良好的起点,通过实践和研究源代码,开发者可以深入了解如何在实际项目中应用工作流管理,提升软件系统的灵活性和可维护性。

    OSWorkflow开发指南

    OSWorkflow 是一个强大的工作流引擎,它主要用于管理应用...通过学习OSWorkflow,开发者不仅可以提高工作效率,还能为业务流程带来更高的灵活性和可维护性。这份开发指南无疑是深入了解和掌握OSWorkflow的重要资源。

    OSWorkflow_PDF

    对于开发者来说,理解源码有助于深入学习OSWorkflow的工作原理,而将它作为工具则意味着文档可能涵盖了如何在实际开发环境中应用OSWorkflow。 从压缩包子文件的文件名称“工作流参模型.pdf”来看,我们可以预期这份...

    流程引擎OSworkflow2.8资料(所有jar包,学习资料,api)

    在这个压缩包中,你将找到一系列资源,包括jar包、学习资料和API手册,这些都是深入理解和使用OSWorkflow 2.8的关键。 首先,让我们详细了解一下OSWorkflow的核心概念和功能: 1. **流程定义**:OSWorkflow允许...

    OSWorkFlow

    3. 示例代码:压缩包中的"OSWorkFlow"文件可能包含示例代码和配置,供学习参考。 4. 第三方教程:网上有许多关于OSWorkFlow的教程和博客文章,深入讲解各个功能和最佳实践。 总的来说,OSWorkFlow为Java开发者提供...

    OSWorkflow

    本书《OSWorkflow:Java开发人员和架构师集成开源业务流程管理指南》由Diego Adrian Naya Lazo撰写,旨在帮助读者深入了解OSWorkflow,并通过实际案例学习如何将其集成到现有的系统中。 #### 二、作者简介 Diego ...

    osworkflow中文入门指南,osworkflow+hibernate+spring集成配置,osworkflow-2.8.0.jar

    **osworkflow** 是一个开源的工作流管理系统,专为Java...通过学习和实践这些文档,开发者可以掌握osworkflow的基本用法,了解如何将其与Hibernate和Spring集成,从而在实际项目中构建出高效、灵活的工作流管理系统。

    osworkflow

    **osWorkflow 概述** osWorkflow 是一个开源的工作流管理系统,专为 Java 应用程序设计,用于处理复杂的业务流程。...通过深入学习和实践,你将能够掌握如何利用osWorkflow 构建高效、可扩展的业务流程管理解决方案。

    工作流最全的资料学习

    它们可能是学习OSWorkflow的关键资料,帮助你快速理解和掌握该框架。 学习工作流技术,你需要理解以下几个核心概念: 1. **工作流模型**:这是描述业务流程的抽象表示,定义了任务的顺序、条件和决策点。 2. **...

    oswrokflow学习总结,花了好长时间才整理完,很值的一看哦!

    OSWorkflow,全称为Open Source Workflow,是一个开源的工作流引擎,主要用Java语言开发,用于管理应用程序中的业务流程。本文档的作者花费了大量...这份文档无疑是你学习OSWorkflow的宝贵资源,值得仔细研读和参考。

    OSWorkflow源码及电子书

    本资源包含了OSWorkflow的源代码和相关电子书籍,对于学习和使用OSWorkflow来说,这是一个宝贵的资料库。 首先,让我们深入了解一下OSWorkflow的核心特性: 1. **灵活性**:OSWorkflow的最大亮点是其灵活性。它...

Global site tag (gtag.js) - Google Analytics