经过一番思量,决定在项目中引入OSWorkflow,参阅了很多网上的帖子,Spring2的结合比较容易解决,只要在spring的bean定义时使用的类正确就行了。但是对于Hibernate3,尝试了很多方法都没有搞定,貌似要完全的结合还需要写一些代码。于是退而求其次,仅仅做到让OSWorkflow 使用Spring定义的datasource就行了。省去在JNDI上另外再定义一个datasource的麻烦,并且减少数据库连接的开销。
具体做法:
1. 声明一个Store类
public class EtSpringMySQLWorkflowStore extends MySQLWorkflowStore implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public EtSpringMySQLWorkflowStore() {
}
public void init(Map props) throws StoreException {
super.init(props);
String springDataSource = (String) props.get("spring.datasource");
ds=(DataSource)getApplicationContext().getBean(springDataSource);
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public void setApplicationContext(ApplicationContext applicationContext) {
EtSpringMySQLWorkflowStore.applicationContext = applicationContext;
}
}
2. 在osworkflow.xml中如下定义store:
<persistence class="com.xxx.workflow.EtSpringMySQLWorkflowStore">
<property key="spring.datasource" value="dataSource"/>
3. OSWorkflow的使用与普通方式一样:
// 创建工作流实例
Map<String, Object> transientVars = new HashMap<String, Object>();
transientVars.put(ServletContext.class.getName(),
this.servletContext);
Workflow wf = new BasicWorkflow("");
// Workflow wf=(Workflow)getBean("workflow");
try {
long wfid = wf.initialize("exchange", 100, null);
wf.getPropertySet(wfid).setString("modelName",getText("exchange"));
wf.getPropertySet(wfid).setInt("modelId",
model.getExchangeId().intValue());
wf.doAction(wfid, 1, transientVars);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
分享到:
相关推荐
在Java应用中,osworkflow常常与Spring和Hibernate这两个主流的框架结合使用,以实现业务流程的自动化处理。本篇文章将深入探讨如何在Spring和Hibernate的环境下集成osworkflow2.8,以及在此基础上实现高效的工作流...
在IT行业中,工作流管理系统是实现企业业务流程自动化的重要工具,而`osworkflow`、`Spring`和`Hibernate`这三者结合的应用则为构建高效、灵活的工作流系统提供了强大的支持。`osworkflow`是一个开源的工作流引擎,...
在本入门指南中,我们将深入探讨如何使用osworkflow,并将其与流行的数据持久化框架Hibernate和依赖注入容器Spring进行集成。 **工作流管理系统** 是一种软件工具,它允许开发者定义、执行和管理业务流程。...
spring+hibernate+osworkflow,服务器为Tomcat6.0,数据库为Mysql 把viewlivegraph2.jsp改为viewlivegraph.jsp. 其中把wf的获得修改为 ApplicationContext cxt = WebApplicationContextUtils.get...
Struts2+Spring+Hibernate+OSWorkflow框架是一个广泛使用的Java Web开发组合,它结合了四个强大的技术来构建高效、可扩展且易于维护的企业级应用程序。下面将分别介绍这四个技术及其在项目中的应用。 1. **Struts2*...
在实际应用中,Osworkflow 可以与Spring、Hibernate等框架结合,提供更方便的集成方案。例如,通过Spring的AOP(面向切面编程)可以自动处理任务的生命周期,而Hibernate则可以用于存储流程实例和历史数据。 总结...
- SpringHibernateWorkflowStore结合了Spring和Hibernate框架,利用Hibernate进行数据持久化。 4. 工作流核心概念 - OSWorkflow中定义了工作流的各种状态,如os_currentstep、os_historystep、os_wfentry等,它们...
1. **易于集成**:OSWorkflow设计之初就考虑到了与现有系统的兼容性问题,能够方便地与Spring、Hibernate等框架结合使用。 2. **灵活性高**:用户可以根据需要自定义工作流的状态转换逻辑、动作和条件判断。 3. **轻...
5. **集成应用示例**:可能包含如何将OSWorkFlow与Spring、Hibernate等常见框架集成的示例。 6. **异常处理**:处理工作流运行过程中的错误和异常,提供恢复策略。 通过学习这两份资料,开发者不仅可以掌握...
2. **OSWorkflow核心概念** - **流程定义**:定义了工作流的各个步骤和转换规则,包括活动(Activities)、决策(Decisions)和事件(Events)。 - **流程实例**:基于流程定义创建的具体实例,每个实例代表一个...
- **SpringHibernateWorkflowStore**:结合Spring和Hibernate,提供更高级的事务管理和性能优化。 - **JDBCTemplateWorkflowStore**:利用Spring的JdbcTemplate简化JDBC操作。 - **HibernateWorkflowStore**:直接...
由于其基于 Java,OSWorkflow 可以轻松地与Spring、Hibernate等Java框架集成,也可以与Web服务、EJB等企业级技术配合使用。 8. **版本更新与社区支持** "2.8" 版本是OSWorkflow的一个稳定版本,但随着技术的发展...
- **Spring Hibernate 存储**:利用 Spring 和 Hibernate 技术进行持久化操作。 - **JDBC 模板存储**:使用 JDBC 模板简化数据库操作。 - **Hibernate 存储**:直接使用 Hibernate 进行对象关系映射。 #### 四、...
此外,OSWorkflow与各种应用程序集成良好,可以轻松地与Spring、Hibernate等框架结合,实现业务逻辑和数据持久化。 在实际开发中,我们可以通过以下步骤使用OSWorkflow: 1. 配置工作流定义:编写XML文件,定义...
- **其他依赖库**:比如Spring框架或Hibernate等,如果项目中有使用到的话。 ##### 2. 运行示例 为了更好地理解如何使用OSWorkflow,可以参考官方提供的示例代码。这些示例通常会涵盖从环境搭建到流程设计的完整...
OSWorkflow 是一款基于 Java 的工作流引擎,能够与各种Java应用程序集成,如Java EE 应用服务器或Spring框架。 2. **OSWorkflow 特性**: - **流程定义**:OSWorkflow 支持XML格式的流程定义,允许开发者以直观的...
- **OSWorkflow可选包**:用于增强特定功能的扩展包,如与Spring或Hibernate集成的包。 - **与Spring和Hibernate的集成**: - **与Spring联用所需包**:提供Spring容器管理OSWorkflow所需的配置文件和依赖包。 - ...