呜~~~~~~~~~~~~首先在写文章之前,先骂一下javaeye。我好不容易写了 半天,刚才鼠标不小心动了下,居然全部白写了。我靠,差点就没耐心继续写下去了的。气死我了。
好了,不废话了,想到最近在学ext和jbpm4。在过程中遇到的问题真不少,还好都慢慢解决了,也自己写了一个小实例。
想到自己在学习过程中所遭遇的痛苦,为了帮助大家少走点弯路,所以把自己这段时间的学习经验发上来。
首先,在spring和jbpm4的整合过程中,先要把jbpm.jar包中的jbpm.hibernate.cfg.xml文件小改动一下,把
<hibernate-configuration>
<cfg resource="jbpm.hibernate.cfg.xml" />
</hibernate-configuration>
这部分给去掉。因为这会默认从jbpm.hibernate.cfg.xml启动,不从application.xml中启动,就算你在
jbpm.hibernate.cfg.xml中也配置了好了hibernate,但是这会让程序中存在两个session,所以就用spring的
application.xml配置hibernate就可以了。呵呵,在改动的时候也郁闷了我一下,怎么也打不好jar包。所以最后想到一个
偷懒办法,用winrar把文件先打成zip包,再直接改后缀名为jar。哈哈,居然测试成功。记得是zip包哦不是rar包。好像
zip和jar压缩方法差不多。
第二,准备好衣以上东西了,就可以直接在application.xml中配置jbpm4的processEngine了。就像官方文档这样
<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
<constructor-arg value="jbpm.cfg.xml"></constructor-arg>
</bean>
<bean id="processEngine" factory-bean="jbpmConfiguration"
factory-method="buildProcessEngine"></bean>
就配好了processEngine。到时候由他可以得到所有服务。
第三,因为我是用的ext,所以就直接用的servlet处理后台,提醒大家的是在spring中不能对servlet进行依赖注入,当
然老鸟都知道了,只是提醒和我一样的菜鸟。所以在servlet中要通过
ApplicationContext ac=WebApplicationContextUtils.getWebApplicationContext(getServletContext());
ProcessEngine processEngine = (ProcessEngine)ac.getBean("processEngine");
得到processEngine。
第四,在spring和hibernate整合时,要想用到hibernate的lazy属性,要在web.xml中加入
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
加入此拦截器后,spring会将lazy属性的子类的id存放在一个handler中,需要的时候再查询出来。我调试过了,的确有代理,没有直接查完。然后这也顺便出了个小问题,用了这个之后不知道为什么,会将事务设这为readOnly,若更新数据
库中信息,会报错,说将将hibernate的flush模式设置为了FLUSH_NEVER。所以这里若自己的新建表(除了jbpm4的自带表以外的)要给自己的更删改加入spring的事务管理中去。我的例子就是user表了。
第五,重中之重啊。第四点提到了spring的事务管理。我用声明式事务怎么也试不成功,大家看我的application.xml中会保留我的配置。希望帮我指正,让我 郁闷了好久好久。所以我的事务是采取的编程式。
第六,说说我现在还不知道怎么把从前台得到json字符串转化为bean、基本类型的会转,但是若属性中有一个日期格式,我就不知道怎么转了。大家帮我指点一下吧。
再补充两点。在jbpm4和tomcat集成的时候大家都知道怎么做了,把那三个包移除。但是我用的是jboss,所以稍有不同,我也是弄了好久才弄出来的,到现在我还不知道为什么呢。如果有知道的麻烦告诉我一声。就是把juel.jar包移除,但是保留另外两个juel的辅助包。(咦,我记得我是要补充两点的啊,但是写完一点忘记另外一点了,记起来了再说吧,呵呵,我的记性就是这样子,麻烦大家体谅)
额,废话了那么多,差不多也说完了。我会把我同期做的笔记都发在我博客中的。呵呵,也是我第一次写博客啊。还是原创滴。嘿嘿。
分享到:
相关推荐
将jbpm4.0、EXT3.0、Spring和Hibernate整合在一起,可以构建出一个功能强大的业务流程管理系统。Spring作为整体架构的胶水,管理各组件的生命周期;Hibernate负责数据持久化,处理与数据库的交互;jbpm4.0则处理业务...
通过JBPM4.4、Spring和EXT的整合,可以构建出一个功能完善、易用性强的流程管理系统,不仅能够有效地管理业务流程,还能提供直观的用户界面,提升用户体验。这种整合方式在现代企业级应用中具有很高的实用价值。
这个例子展示了如何使用Struts2、Spring和Hibernate与JBPM配合实现一个请假流程。开发者需要定义请假流程的jpdl文件,创建对应的数据库表,然后在Struts2的Action中调用JBPM的服务来启动、完成任务和查询流程状态。 ...
jbpm4.0实例(整合spring2.5+ext3.0+hibernate)
【标题】"jbpm4.3+struts2+spring3+hibernate3整合(一)"涉及的是一个常见的Java企业级应用架构整合实践,其中jbpm4.3是业务流程管理(Business Process Management)框架,Struts2是MVC(Model-View-Controller)...
首先,jbpm4本身拥有一个IOC容器,但为了更好地整合其他框架,通常会选择Spring作为统一的容器来管理和协调所有服务,包括jbpm4的服务。这需要将jbpm4的相关服务迁移到Spring的配置中,让Spring管理事务,从而降低...
4. **数据源集成:** jBPM和Spring通常都需要数据库支持,需要配置数据源并确保它们共享同一个数据库连接。 5. **Maven或Gradle构建:** 如何使用构建工具管理项目依赖,确保jBPM、Struts2和Spring的版本兼容。 6....
【jbpm4+spring+hibernate】是一个集成示例,展示了如何将业务流程管理工具Jbpm4与Spring框架和Hibernate ORM库协同工作。这个示例主要关注于在企业级应用中实现工作流管理和数据持久化。让我们深入探讨这三个技术...
1. **配置jBPM4的数据源**:在Spring配置文件中,我们需要为jBPM4定义一个数据源,这通常是通过JNDI查找或直接定义HSQLDB等内存数据源来完成的。 2. **创建ExecutorService**:jBPM4需要ExecutorService来调度和执行...
SSH2+JBPM+ExtJs4实战,JBPM是重点讲解。实战与demo的区别我不再多说,在以前工作中走过一些弯路,一些实现都是靠自己想象或者听其他人应该怎么实现才是项目中真正需要的。JBPM书上是讲解以工作流为核心去开发应用,...
### 公司内部OA系统需求方案(jbpm4+ext)知识解析 #### 一、需求分析 **1.1 需求分析** - **前台功能:** - **公告与公文管理:** 员工可以通过前端平台发布、查看最新的公告以及相关的公文信息,确保所有员工都...
"jBPM4实战系列(二)jBPM4.4+ssh 整合配置及完整实例" 这个标题表明我们将会探讨一个关于jBPM4的具体实战项目,特别关注的是如何将jBPM4版本与SSH(Spring、Struts和Hibernate)框架整合,并提供了一个完整的实现示例...
总的来说,"jbpm4+struts2案例"是一个综合展示如何将业务流程管理与Web应用结合的实例。它涵盖了流程设计、前端交互、后端处理和测试验证等多个方面,对于学习和理解jbpm4和Struts2的协同工作具有很高的参考价值。
标题中的"spring+struts1+hibernate+jbpm实例"揭示了这是一个基于Java技术栈的Web应用程序开发实例,其中涉及四大核心技术:Spring、Struts1、Hibernate和JBPM。接下来,我们将深入探讨这些技术及其在实际项目中的...
总之,Jbpm4.4整合Spring Hibernate4是一个强大的组合,它为开发人员提供了构建高效、灵活的流程驱动应用的工具,简化了业务流程的管理和实现。通过深入理解这些组件和整合方式,开发者可以更好地应对复杂的业务场景...
【jbpm4.3】是Java Business Process Management(Java业务流程管理)的一个版本,它是一个开源的工作流和业务流程管理系统,用于设计、执行和管理业务流程。jbpm4.3是一个较老的版本,但仍然包含了大量的核心功能,...
总结来说,这个实例展示了如何利用Struts2处理用户交互,Spring进行依赖管理和流程整合,Hibernate负责数据持久化,以及Jbpm实现业务流程管理,形成一个完整的企业级应用解决方案。通过对这些技术的深入理解和实践,...
【jbpm + struts + spring + tomcat】项目是一个经典的Java企业级应用架构组合,它将业务流程管理(BPM)工具jbpm、MVC框架Struts、依赖注入容器Spring和应用服务器Tomcat整合在一起,为开发高效、可维护的企业应用...
在本项目中,我们关注的是一个集成环境,其中包括Spring 4.1.1、JBPM 6.4.0和Maven三个核心组件。这些技术的结合为开发企业级工作流管理系统提供了强大的支持。 首先,Spring 4.1.1是Java应用程序开发框架的最新...