KK

Kim-'s-Blog.Object-Everything.I'm POJO.

.紀-錄.爲了忘卻的記憶..真的勇士,要敢于直面遇到的問題,敢于正視繁雜的原碼......在實踐中積累!

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  74 Posts :: 1 Stories :: 70 Comments :: 0 Trackbacks

Jbpm4.1特性:
4.1与Tomcat集成的很好
4.1提供基于Web的流程编辑功能

在开发指南中有相关整合章节:

Replace the standard-transaction-interceptor with the spring-transaction-interceptor. The hibernate session needs the attribute current=”true”. Also, the <transaction/> must be removed from the transaction-context if you want the transactions to be handled by Spring only. This forces jBPM to search for the current session, which will be provided by Spring.

<process-engine-context>
<command-service>
<spring-transaction-interceptor />
...
</command-service>
...
</process-engine-context>
<transaction-context>
...
<hibernate-session current="true"/>
</transaction-context>

 

The Spring integration provides a special context, which is added to the set of context where the jBPM engine will look for beans. Using this SpringContext, it is now possible to retrieve beans from the Spring Application Context. For the Spring context to be known, a SpringConfiguration must be created. This class extends the JbpmConfiguration but will add itself as a context. The single constructor take the location of the jBPM configuration.

<bean id="jbpmConfiguration" class="org.jbpm.pvm.internal.cfg.SpringConfiguration">
<constructor-arg value="be/inze/spring/demo/jbpm.cfg.xml" />
</bean>

 

The jBPM services can also be defined in the Spring applicationContext, as following:

<bean id="processEngine" factory-bean="jbpmConfiguration" factory-method="buildProcessEngine" />
<bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
<bean id="executionService" factory-bean="processEngine" factory-method="getExecutionService" />

 

The previous section already showed how the jBPM services can be made accessible for other Spring services. The other use case is calling Spring beans from within a process. This can be done by using an expression which resolves to the name of a Spring bean.

<java name="echo" expr="#{echoService}" method="sayHello" >
<transition name="to accept" to="join1"/>
</java>

The scripting engine will look into all contexts from the bean named echoService. If you configured the ScriptManager as above, Spring will be the last context to search for. You can also add a Spring bean to the Spring Application context (eg IdentitySessionImpl with id identitySession) and use it in the jBPM config (eg by adding <env class="identitySession" />)

整合过程与 4 基本相同。
jbpm.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>

<jbpm-configuration>

  
<import resource="jbpm.default.cfg.xml" />
  
<import resource="jbpm.tx.spring.cfg.xml" />
  
<import resource="jbpm.jpdl.cfg.xml" />
  
<import resource="jbpm.identity.cfg.xml" />
  
<import resource="jbpm.businesscalendar.cfg.xml" />

  
<!-- Job executor is excluded for running the example test cases. -->
  
<!-- To enable timers and messages in production use, this should be included. -->
  
<!--
  <import resource="jbpm.jobexecutor.cfg.xml" />
  
-->
  
<import resource="jbpm.jobexecutor.cfg.xml" />
  
<import resource="jbpm/jbpm.mail.templates.examples.xml" />
  
</jbpm-configuration>

工作日历从 default中分离
整合XML在原生的jbpm.tx.spring.cfg.xml 中

posted on 2009-09-07 15:15 Kim' 阅读(2148) 评论(2)  编辑  收藏

Feedback

# re: Jbpm 4.1 与Spring 集成 2009-09-14 10:04 礼物
能不能再详细点。  回复  更多评论
  

# re: Jbpm 4.1 与Spring 集成 2009-09-14 10:04 礼物
最好给个demo  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航:
 
jj