jbpm4+ext+spring的一个小实例

呜~~~~~~~~~~~~首先在写文章之前,先骂一下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的辅助包。(咦,我记得我是要补充两点的啊,但是写完一点忘记另外一点了,记起来了再说吧,呵呵,我的记性就是这样子,麻烦大家体谅)

额,废话了那么多,差不多也说完了。我会把我同期做的笔记都发在我博客中的。呵呵,也是我第一次写博客啊。还是原创滴。嘿嘿。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值