﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-JBPM</title><link>http://www.blogjava.net/paulwong/category/37052.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 28 Sep 2021 01:50:55 GMT</lastBuildDate><pubDate>Tue, 28 Sep 2021 01:50:55 GMT</pubDate><ttl>60</ttl><item><title>开源流程引擎哪个好，如何选型？</title><link>http://www.blogjava.net/paulwong/archive/2021/09/27/435987.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 27 Sep 2021 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2021/09/27/435987.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435987.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2021/09/27/435987.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435987.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435987.html</trackback:ping><description><![CDATA[<a href="https://zhuanlan.zhihu.com/p/369761832" target="_blank">https://zhuanlan.zhihu.com/p/369761832</a><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/435987.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2021-09-27 11:05 <a href="http://www.blogjava.net/paulwong/archive/2021/09/27/435987.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Camunda流程引擎</title><link>http://www.blogjava.net/paulwong/archive/2021/09/27/435986.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 27 Sep 2021 02:55:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2021/09/27/435986.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435986.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2021/09/27/435986.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435986.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435986.html</trackback:ping><description><![CDATA[<a href="http://shaochenfeng.com/camunda/" target="_blank">http://shaochenfeng.com/camunda/</a><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/435986.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2021-09-27 10:55 <a href="http://www.blogjava.net/paulwong/archive/2021/09/27/435986.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Camunda/Flowable/Activiti技术发展史</title><link>http://www.blogjava.net/paulwong/archive/2021/09/27/435985.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 27 Sep 2021 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2021/09/27/435985.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/435985.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2021/09/27/435985.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/435985.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/435985.html</trackback:ping><description><![CDATA[<a href="https://blog.csdn.net/qq_30739519/article/details/86583765" target="_blank">https://blog.csdn.net/qq_30739519/article/details/86583765</a><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/435985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2021-09-27 10:45 <a href="http://www.blogjava.net/paulwong/archive/2021/09/27/435985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SNAKER</title><link>http://www.blogjava.net/paulwong/archive/2014/07/23/416108.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 23 Jul 2014 01:16:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2014/07/23/416108.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/416108.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2014/07/23/416108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/416108.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/416108.html</trackback:ping><description><![CDATA[一个开源的国产的工作流引擎，可以自定义表单。<br /><a href="http://snakerflow.com/index.html" target="_blank">http://snakerflow.com/index.html</a><img src ="http://www.blogjava.net/paulwong/aggbug/416108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2014-07-23 09:16 <a href="http://www.blogjava.net/paulwong/archive/2014/07/23/416108.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XForms</title><link>http://www.blogjava.net/paulwong/archive/2013/07/30/402139.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 29 Jul 2013 17:06:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/07/30/402139.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/402139.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/07/30/402139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/402139.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/402139.html</trackback:ping><description><![CDATA[在做表单设计时用到的开源框架。<br /><br /><a href="http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications" target="_blank">http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications<br /><br /><br /></a><a href="http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications" target="_blank">http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications</a><img src ="http://www.blogjava.net/paulwong/aggbug/402139.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-07-30 01:06 <a href="http://www.blogjava.net/paulwong/archive/2013/07/30/402139.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Intalio BPM</title><link>http://www.blogjava.net/paulwong/archive/2013/06/14/400532.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 14 Jun 2013 01:55:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/06/14/400532.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/400532.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/06/14/400532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/400532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/400532.html</trackback:ping><description><![CDATA[私有云平台厂商Intalio，发布管理的业务 流程集成平台Intalio BPM的6.0。新版本包括一个业务规则引擎，文件引擎和Intalio用户界面引擎。BPM6.0的组件本身实在虚拟化基础设施架构顶部上进行部署，如 VMware的vShere或Microsoft Hyper。早期的Intalio BPM的6.0使用者包括厄瓜多尔Internal Revenue Service。Intalio|BPM免费社区版本可以从其公司的网站下载。<a href="http://www.intalio.com/"><br />
<br />
http://www.intalio.com<br />
<br />
<br />
</a><a href="http://www.intalio.org/confluence/display/TEMPO/Home" target="_blank">http://www.intalio.org/confluence/display/TEMPO/Home</a>
<br />
<br />
<br />
<a href="http://bpms.intalio.com/tutorials-5.2/implementing-your-first-process-in-5.2-beginner.html" target="_blank">http://bpms.intalio.com/tutorials-5.2/implementing-your-first-process-in-5.2-beginner.html</a><br /><br /><br /><a href="http://bpms.intalio.com/tutorials-6.0/creating-forms-to-support-people-activities-with-the-form-editor-intermediate.html" target="_blank">http://bpms.intalio.com/tutorials-6.0/creating-forms-to-support-people-activities-with-the-form-editor-intermediate.html</a><br /><br /><br /><a href="http://bpms.intalio.com/tutorials-5.2/designing-processes-with-people-activities-with-intalio-bpms-5.2-intermediate.html" target="_blank">http://bpms.intalio.com/tutorials-5.2/designing-processes-with-people-activities-with-intalio-bpms-5.2-intermediate.html</a><br /><br /><br /><a href="http://bpms.intalio.com/tutorials-5.2/deploying-forms-and-process-with-people-activity-with-intalio-bpms-5.2-intermediate.html" target="_blank">http://bpms.intalio.com/tutorials-5.2/deploying-forms-and-process-with-people-activity-with-intalio-bpms-5.2-intermediate.html</a><br /><br /><br /><a href="http://bpms.intalio.com/samples-6.0/people-activity-5.2.html" target="_blank">http://bpms.intalio.com/samples-6.0/people-activity-5.2.html</a><br /><br /><br />单元测试<br /><a href="http://tempo.intalio.org/tempo/trunk/tms-client/src/test/java/org/intalio/tempo/workflow/tms/client/dependent_tests/RemoteAbsenceRequestTest.java" target="_blank">http://tempo.intalio.org/tempo/trunk/tms-client/src/test/java/org/intalio/tempo/workflow/tms/client/dependent_tests/RemoteAbsenceRequestTest.java</a><br /><img src ="http://www.blogjava.net/paulwong/aggbug/400532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-06-14 09:55 <a href="http://www.blogjava.net/paulwong/archive/2013/06/14/400532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CAMUNDA工作流引擎</title><link>http://www.blogjava.net/paulwong/archive/2013/06/03/400124.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 03 Jun 2013 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/06/03/400124.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/400124.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/06/03/400124.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/400124.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/400124.html</trackback:ping><description><![CDATA[<div>CAMUNDA工作流引擎是一套可以支持，自定义表单，提供WEB界面来跑流程，监控流程有多少个实例的WEB应用工具。<br />
<br />
<ol>
     <li>定义流程和表单<br />
     使用ECLIPSE的插件来定义流程，表单可以自己画好HTML，再接入到节点中<br />
     <br />
     <br />
     </li>
     <li>部署流程<br />
     生成WAR部署到TOMCAT服务器即可，如要再次对流程进行修改，再次生成WAR再次部署即可。<br />
     <br />
     <br />
     </li>
     <li>跑流程<br />
     访问<a href="http://localhost:9090/tasklist">http://localhost:9090/tasklist</a>即可<br />
     <br />
     <br />
     </li>
     <li>监控流程<br />
     访问<a href="http://localhost:9090/cockpit">http://localhost:9090/cockpit</a>即可，实际只是可以查看有多少流程定义和多少个流程实例在跑<br />
     <br />
     <br />
     </li>
</ol>
安装手册：<br />
<a href="http://docs.camunda.org/guides/installation-guide/" target="_blank">http://docs.camunda.org/guides/installation-guide/<br />
<br />
</a>快速上手：<br />
<a href="http://www.camunda.org/get-started/developing-process-applications.html">http://www.camunda.org/get-started/developing-process-applications.html<br />
<br />
</a>CAMUNDA+MULA<br /><a href="https://app.camunda.com/confluence/display/foxUserGuide/Bank+Account+Opening">https://app.camunda.com/confluence/display/foxUserGuide/Bank+Account+Opening</a></div><img src ="http://www.blogjava.net/paulwong/aggbug/400124.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-06-03 16:47 <a href="http://www.blogjava.net/paulwong/archive/2013/06/03/400124.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti入门Demo(kft-activiti-demo)</title><link>http://www.blogjava.net/paulwong/archive/2013/01/06/393887.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 06 Jan 2013 13:39:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2013/01/06/393887.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/393887.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2013/01/06/393887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/393887.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/393887.html</trackback:ping><description><![CDATA[<ul style="color: #353b40; font-family: Rockwell, Verdana, sans-serif; font-size: 16px; line-height: normal; background-color: #ffffff; ">
     <li>本项目旨在让Activiti初学者可以快速入门，使用工作流里面的请假流程作为Activiti企业实战的Hello World。</li>
     <li>简单通过这个实例说明如何结合流程与业务，表单、业务、流程之前如何衔接&#8230;&#8230;</li>
     <li>发起这个项目也是目前没有太完整、接近企业真实项目的例子，本项目作为一个补充希望能帮助更多人。</li>
     <li>本项目托管在著名的Github，地址：<a href="https://github.com/henryyan/kft-activiti-demo" style="color: #226600; font-weight: bold; text-decoration: none; ">https://github.com/henryyan/kft-activiti-demo</a>&nbsp;。</li>
     <li>参考WIKI：<a href="https://github.com/henryyan/kft-activiti-demo/wiki" style="color: #226600; font-weight: bold; text-decoration: none; ">https://github.com/henryyan/kft-activiti-demo/wiki</a></li>
</ul>
<div style="color: #353b40; font-family: Rockwell, Verdana, sans-serif; font-size: 16px; line-height: normal; background-color: #ffffff; "><img src="http://www.kafeitu.me/files/2012/05/kft-activiti-demo.png" alt="kft-activiti-demo" /></div>
<img src ="http://www.blogjava.net/paulwong/aggbug/393887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2013-01-06 21:39 <a href="http://www.blogjava.net/paulwong/archive/2013/01/06/393887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Activiti 5.11 发布，业务流程管理</title><link>http://www.blogjava.net/paulwong/archive/2012/12/06/392567.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 06 Dec 2012 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/12/06/392567.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/392567.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/12/06/392567.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/392567.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/392567.html</trackback:ping><description><![CDATA[1. 圣诞大礼包<br />
这是我第一次为Activiti的发布撰文，因为这次的发布我觉得很有必要和大家分享，这其中包含了我期待的新特性和已知问题的修复；而且还有一个重量级的模块Activiti Modeler。<br />
<br />
在5.8版本之前一直以每两个月一版的的频率发布，但是在5.8~5.10之间波动比较大，5.9和5.10都是5个月才发布一版，不过从5.11开始又开始恢复每两个月一版的频率了，我认为短周期的发布有利于占领市场，对于开发者来说能尽快修复比较严重的问题。<br />
<br />
5.11版本在代码管理方面做了很大调整，首先把源码由原来的svn转移到了Github有利于引擎的发展，可以让更多的开源爱好者参与进来，大家一起捉虫，想Activiti Team提交自己的想法，Github可以很好的满足这些；通过Github的&#8220;Fork&#8221;我们可以很容易的做到这些。<br />
<br />
2. 新特性及优化<br />
新模块Activiti Modeler：添加了Web版本的流程定义设计器&#8212;Activiti Modeler到Activiti Explorer中，而且两者可以无缝结合；可以把Modeler设计的流程定义部署到Exploer中，也可以以已部署的流程定义为基础进行修改后重新部署。具体的使用可以参考这里。<br />
汉化Activiti Explorer：本人有幸参与并完成了汉化工作，汉化介绍。<br />
添加Native Query：允许通过本地SQL方法查询Activiti的对象；在这之前查询一直是一个比较头疼的事情，因为开发人员只能使用一些Query对象显示调用设置属性的方法过滤，如果想做到自定义条件查询没有这类接口提供；现在可以使用下面的方式灵活组装查询条件。参考手册的Query API部分。<br />
历史变量查询功能增强：在5.11之前的版本中变量和表单属性（表单的字段，动态表单和外置表单）保存在同一张表中ACT_HI_DETAIL，以DETAIL的TYPE区分（FormProperty和VariableUpdate）；在5.11中把两者做了分离，添加了一张表ACT_HI_VARINST专门用来存储变量（也就是在ACT_HI_DETAIL中类型为VariableUpdate类型的记录），这样表单的字段和变量就区分开来了（表单字段类型是字符型，变量有具体的类型）；并且专门添加了一个变量实例接口HistoricVariableInstance，以及对应的变量实例查询对象HistoricVariableInstanceQuery。<br />
运行时变量删除：允许通过API方式删除流程实例或者任务的相关变量，调用方式：runtimeService.removeVariable('foo')<br />
改进挂起与激活状态：在5.9版本时我曾在JIRA提交了一个改进意见ACT-1228，不过最后被关闭了&#8230;&#8230;在5.11中终于支持了这一特性，当挂起一个流程实例的时候同时也把相关的任务挂起；原来针对流程定义的挂起与激活功能也进行了优化，可以选择当挂起或者激活某个流程定义时是否挂起相关的流程实例，并且允许定时执行挂起与激活任务（利用Job，定时器）。如此，对于一些流程实例或者流程定义暂时不需要处理时就可以利用挂起功能，在待办任务列表仅显示处于激活状态的即可。<br />
优化对DB2和MSSQL的支持：在SQL脚本方面做了优化。<br />
允许在Java Delegate中调用引擎Service接口：当为某个活动添加了一个Java Service任务设置了Java Delegate时如果需要获取引擎的7个Service，只能通过自己写工具类的方式获取，或者用Spring代理监听或者Java Delegate类用注入的方式实现。现在可以通过DelegateExecution的对象获取，详细请参考这里。<br />
结构调整：抽取独立的模块（jar包）activiti-explorer、activiti-rest，对应的activiti-webapp-explorer2依赖activiti-explorer，activiti-webapp-rest2依赖activiti-rest；如此我们可以很容的把这两个模块集成到现有系统中。创建新的模块：activiti-bpmn-converter、activiti-bpmn-model、activiti-json-converter作为基础的组件，提供bpmn文件的解析以及转换功能（稍后会写篇文章专门讲解如何使用这些基础组件）。<br />
除了以上的改进和新特性之外还修复了大量的Bug，完整的Changlog请参考JIRA。<br />
<br />
3. 下载新版本<br />
5.11版本下载地址：https://github.com/downloads/Activiti/Activiti/activiti-5.11.zip<br />
<br />
压缩包中的wars目录包含两个文件，activiti-rest模块可以单独部署了，修改数据库配置就可以作为自己的REST服务使用。<br />
Github上的5.11分支：https://github.com/Activiti/Activiti/tree/activiti-5.11<br />
<br />
4. 升级建议<br />
5.11版本是一个改进版本，添加了很多有用的新特性，很值得升级；当然在升级产品环境之前做好充分的测试并备份数据。<br />
<br />
5. 版本5.12前瞻<br />
在5.11发布之前我曾在JIRA提交了一个关于Activiti Explorer中流程图的一个Bug-ACT-1469，是的，又被关闭了；不过后来在twitter上和Activiti的Team Leader 交流了一下，我分享了我的做法并得到了他的肯定，而且想让我参与到开发中用Javascript和Css方式实现流程图的跟踪功能。<br />
另外国内开发者遇到的流程图中文乱码问题也考虑在5.12版本中给出解决方案，这一点我也和Tijs进行了讨论，我的想法是在引擎配置中添加一个字体名称的设置项，对于英文字符集之外的国家就可以通过这个配置使用本地语言的字体以解决乱码问题。
@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);<img src ="http://www.blogjava.net/paulwong/aggbug/392567.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-12-06 21:50 <a href="http://www.blogjava.net/paulwong/archive/2012/12/06/392567.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACTIVITI资源</title><link>http://www.blogjava.net/paulwong/archive/2012/05/16/378322.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 16 May 2012 08:42:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/05/16/378322.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/378322.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/05/16/378322.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/378322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/378322.html</trackback:ping><description><![CDATA[<a target="_blank" href="http://topmanopensource.iteye.com/category/58005">http://topmanopensource.iteye.com/category/58005<br />
<br />
</a><br />
JEECG v3.0 发布，基于代码生成器的智能开发平台<a href="http://code.google.com/p/jeecg/s" target="_blank"><br />
http://code.google.com/p/jeecg/s</a><br />
<br />
<br />
<br />Henry Yan<br />
<a href="https://github.com/henryyan?tab=repositories" target="_blank">https://github.com/henryyan?tab=repositories</a><br />
<img src ="http://www.blogjava.net/paulwong/aggbug/378322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-05-16 16:42 <a href="http://www.blogjava.net/paulwong/archive/2012/05/16/378322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>starflow 工作流程</title><link>http://www.blogjava.net/paulwong/archive/2012/05/03/377328.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 03 May 2012 14:38:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/05/03/377328.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/377328.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/05/03/377328.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/377328.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/377328.html</trackback:ping><description><![CDATA[<a href="http://code.google.com/p/starflow/" target="_blank">http://code.google.com/p/starflow/</a><img src ="http://www.blogjava.net/paulwong/aggbug/377328.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-05-03 22:38 <a href="http://www.blogjava.net/paulwong/archive/2012/05/03/377328.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>状态控制VS流程控制</title><link>http://www.blogjava.net/paulwong/archive/2012/04/24/376432.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 23 Apr 2012 16:56:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/04/24/376432.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/376432.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/04/24/376432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/376432.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/376432.html</trackback:ping><description><![CDATA[<p>曾经做过一个结算系统，对于一段期间内完成的订单做金额费用的结算，根据订单的金额付款，并计算出一些代理费用等等。<br />在付款之前，需要结算部门审核，财务部门的审核，上级主管的审核，客户的确认等等。这个是按项目来做的，没有上工作流系统。</p>
<p>对于付款前的那些级别的审核，都是用状态字段来控制的，主要是在结算单中增加审核的字段</p>
<p>财务审核状态，审核日期，审核意见，审核人<br />客户确认状态，确认日期，确认意见，确认人<br />上级主管审核状态，审核日期，审核意见，审核人</p>
<p>....</p>
<p>用状态来控制流程的流转的，<br />结算部门人员，登录系统后，点击 结算单确认，打开所有的未确认过的结算单，进行核对，核对过后，点击审核通过，则确认状态为 已确认。<br />财务人员登录后，点击 财务审核 菜单，打开所有结算已确认并且财务未通过的结算单，进行财务的核对。核对正确后，点击审核通过，则财务审核状态为 财务审核通过。</p>
<p>客户登录系统后，点击 结算单确认 菜单，打开财务审核通过，客户未确认的结算单，进行确认操作，客户确认后，客户确认状态就变成 已确认了.<br />....</p>
<p>最后到付款等，都是通过状态字段来控制的。<br />整个的流转只能是操作人员自己心里清楚，现在流转到那个阶段了，下一步需要谁来处理。</p>
<p><br />后来需求还在不断的变化，需要增加或减少一些审核，如代理的地方财政审核，代理公司的二级审核，又去掉上级主管的审核等等..... <br />总之涉及到钱的问题，都会很仔细了，层层审核，还需要加上ca签名认证，在真正付款之前，先核对一下ca签名的数据是否和现在的数据一致，避免审核过后，结算单又做了修改。</p>
<p>在增加审核的时候，就多增加一些字段，或者多增加一些状态值，并修改代码将字段和状态值的修改体现到代码中，使得流程能流转，并重新打包发布程序，最后再测试，发布，正式上线使用</p>
<p>来来回回的总是修改那些状态字段以及状态字段的值，控制页面的记录的显示，审核按钮等操作是否显示，一些只读的，隐藏的等等功能按钮也是靠状态值来控制的。<br />有时候要减一级的审核，并加一级的审核，就会将减掉的那级审核的状态字段修改到增加的那级审核上。<br />.....<br />一段时间后，这些状态字段以及状态字段的控制，就变得很复杂了，整个流转过程，谁也不清楚，或许实施人员心里大概有个底，也没准那个需求变化了，开发人员又&#8220;默默的&#8221;改了代码了。每次在要走一个流转的时候，会重新了解一下，不清楚的，就打开代码来查看了，大体上就是那样的，有一些审核的过程。</p>
<p><br />如果用工作流系统来做这个....<br />首先要在流程设计器中，画一个 结算单审批流程</p>
<p>制定结算单－－》结算部确认－－》财务部核对－－》客户确认－－》付款处理－－》结束</p>
<p>在流程的设计器中的<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/paulwong/001.png" width="669" longdesc="" height="271" /><br /><br /><br />结算单中也不需要增加那么多的字段了，只对应一张通用的审核表，有一级的审核，就往通用审核表中增加一条记录。</p>
<p>在结算单表中，也可以增加一个状态字段，记录每个节点的审核结果，便于单独做记录的查询用。</p>
<p>只需要一个菜单&#8220;制定结算单&#8221;，当结算单制作完成后，流程实例就启动了，下一步的办理，就完全走流程设计器中定义的节点了。<br />下一步的执行有两种方式：<br />从我的待办任务列表中链接进去<br />从流程实例的轨迹图中，点击节点进去，或 轨迹列表中单节行进去<br /><br /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/paulwong/002.png" width="1105" longdesc="" height="612" /><br /><br />每个流程实例的办理都有轨迹图显示，能清楚明确的看到每张结算单的审核过程</p>
<p><br />当有需求变化，需要增加一级的审核，则在流程设计器中，多画出一个审核节点，并增加一个结算单审批流程的版本，新的结算单流程按新的版本启动。<br />有减少一级的审核或处理，也是在设计器中，删除一个节点。</p>
<p>需要查看结算单的审批流程，只要打开流程设计器，查看流程的节点。或者查看流程实例运行的轨迹，也可以查询到结算单的审批过程。</p>
<p><br />运行工作流系统后，流程变得有迹可循了，不再是杂乱无章的。</p><img src ="http://www.blogjava.net/paulwong/aggbug/376432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-04-24 00:56 <a href="http://www.blogjava.net/paulwong/archive/2012/04/24/376432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>免费的流程设计器</title><link>http://www.blogjava.net/paulwong/archive/2012/04/23/376424.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 23 Apr 2012 14:35:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/04/23/376424.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/376424.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/04/23/376424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/376424.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/376424.html</trackback:ping><description><![CDATA[免费的流程设计器：<br /><a href="http://wind2154.iteye.com/blog/1464359" target="_blank">http://wind2154.iteye.com/blog/1464359</a><img src ="http://www.blogjava.net/paulwong/aggbug/376424.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-04-23 22:35 <a href="http://www.blogjava.net/paulwong/archive/2012/04/23/376424.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BONITA</title><link>http://www.blogjava.net/paulwong/archive/2012/04/19/375209.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 18 Apr 2012 16:06:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/04/19/375209.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/375209.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/04/19/375209.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/375209.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/375209.html</trackback:ping><description><![CDATA[<div>无意中发现一个开源的工作流引擎，包括BPM全套<br /><a href="http://www.bonitasoft.org" target="_blank">http://www.bonitasoft.org</a></div><img src ="http://www.blogjava.net/paulwong/aggbug/375209.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-04-19 00:06 <a href="http://www.blogjava.net/paulwong/archive/2012/04/19/375209.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>工作流引擎Activiti使用总结</title><link>http://www.blogjava.net/paulwong/archive/2012/04/09/373643.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 09 Apr 2012 08:39:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/04/09/373643.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/373643.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/04/09/373643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/373643.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/373643.html</trackback:ping><description><![CDATA[<a href="http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html" target="_blank">http://www.kafeitu.me/activiti/2012/03/22/workflow-activiti-action.html<br /></a><br /><br />源码来了：<br /><a href="https://github.com/henryyan/kft-activiti-demo" target="_blank">https://github.com/henryyan/kft-activiti-demo</a><img src ="http://www.blogjava.net/paulwong/aggbug/373643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-04-09 16:39 <a href="http://www.blogjava.net/paulwong/archive/2012/04/09/373643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACTIVITI KICK START</title><link>http://www.blogjava.net/paulwong/archive/2012/04/01/373172.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 31 Mar 2012 16:43:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/04/01/373172.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/373172.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/04/01/373172.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/373172.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/373172.html</trackback:ping><description><![CDATA[<a href="https://github.com/jbarrez/Activiti-KickStart">https://github.com/jbarrez/Activiti-KickStart</a> <br /><br />一个基于ACTIVITI的内容管理系统:<br /><a href="http://code.google.com/p/echoice/source/browse">http://code.google.com/p/echoice/source/browse</a><br /><br />ACTIVITI中文使用手册:<br /><a href="http://www.georgeinfo.com/file/activiti-doc.pdf">http://www.georgeinfo.com/file/activiti-doc.pdf</a><img src ="http://www.blogjava.net/paulwong/aggbug/373172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-04-01 00:43 <a href="http://www.blogjava.net/paulwong/archive/2012/04/01/373172.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>业务系统与工作流系统</title><link>http://www.blogjava.net/paulwong/archive/2012/03/20/372252.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Tue, 20 Mar 2012 02:26:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/20/372252.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/372252.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/20/372252.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/372252.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/372252.html</trackback:ping><description><![CDATA[通常工作流系统是独立的一个系统，必须以业务系统和工作流系统的观点才能比较好的理解业务系统。工作流系统负责节点的流转，即状态的改变。<br /><br />
<ol><li>业务系统如果增加一个业务对象，须增加一堆的服务方法，工作流系统面向的是流程，增加流程无需增加代码，因此启动流程的第一步，就要业务系统告诉工作流系统要管理哪个流程，即流程ID，然后工作流系统就记录下此流程实例<br /></li><li>工作流系统面向的是流程配置文件，即bpmn20.xml，用TASK表示业务系统中的步骤，如果这一节点为USER TASK，则表示工作流系统会等待业务系统的触发而改变状态，业务系统会向客户端展示页面，收集信息并验证通过后才让工作流系统改变流程实例的状态；如果是自动任务，则工作流系统会自行改变状态，流转到下一节点。</li><li>由于处理USER TASK时，需业务系统自行判断，因此新增业务对象（表单）时，需新增业务代码，有别于OA系统，新增表单时，不用新增代码。<br /></li><li>USER TASK中允许配有页面展示的链接，业务系统可以从这里取得链接而返回给客户端。静态网页处理时，只需向客户端传实体HTML文件，由客户端解释成文本内容，动态网页实际上由服务器端生成文本内容再发给客户端。</li></ol><img src ="http://www.blogjava.net/paulwong/aggbug/372252.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-20 10:26 <a href="http://www.blogjava.net/paulwong/archive/2012/03/20/372252.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>activiti5.6安装实战</title><link>http://www.blogjava.net/paulwong/archive/2012/03/19/372161.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 18 Mar 2012 16:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/19/372161.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/372161.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/19/372161.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/372161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/372161.html</trackback:ping><description><![CDATA[<p>如下是在window win7旗舰版环境下使用mysql数据库的安装实录：</p>
<p align="left">一）下载 activiti-5.6.zip（<a href="http://activiti.org/downloads/activiti-5.6.zip">http://activiti.org/downloads/activiti-5.6.zip</a>）</p>
<p align="left"><br />二）将activiti-5.6zip解压到指定目录，假设为&#8220;D:\activiti&#8221;，注意下面提到的路径均是相对于该路径而言</p>
<p align="left"><br />三）修改数据库类型为mysql</p>
<p align="left">打开文件&#8220;setup\build.properties&#8221;修改db=mysql（默认为h2）。</p>
<p align="left"><br />四）配置mysql数据库</p>
<p>创建名称为activiti的空数据库，url要改为：&#8220;jdbc:mysql://localhost:3306/activiti?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;amp;useServerPrepStmts=true&#8220;，否则报编码错误，连接帐号设为activiti，密码也设为activiti。（如果不喜欢默认的连接配置，可以修改文件&#8220;setup\build.mysql.properties&#8221;中相应的属性值）</p>
<p align="left"><br />五）预下载一些必需的文件到&#8220;C:\downloads&#8221;</p>
<p align="left">&#8220;D:\downloads&#8221;这个路径是在build.properties中通过属性&#8220;downloads.dir&#8221;定义的，也可以手动修改指定其他位置(默认值为：downloads.dir=../../downloads)。</p>
<p><span id="more-58"></span></p>
<p align="left">如果确保网络环境很顺畅，这一步也可以不做，安装脚本会自动下载，由于之前的版本我安装时经常下载中断，导致文件损坏、安装异常，所以我习惯了先预先下载，保证安装顺畅点。主要下载如下2个文件，左侧为下载地址，右侧为下载后保存的文件名：</p>
<p align="left"><br />1） http://mirrors.enquira.co.uk/apache/apache-tomcat-6.0.29.zip &#8211;&gt; apache-tomcat-6.0.29.zip （2.71MB）</p>
<p align="left">若有tomcat可以不用下载，将tomcat复制到该目录下，如果tomcat的版本不是6.2.29则需要修改setup\build.properties文件中的tomcat.version=6.0.xx</p>
<p align="left">修改为当前的tomcat版本</p>
<p><br />2） <a href="http://activiti.org/downloads/activiti-modeler-5.6.war">http://activiti.org/downloads/activiti-modeler-5.6.war</a> &#8211;&gt; activiti-modeler-5.6.war （31.8MB）</p>
<p>此war文件就是activiti演示的web程序war包必须下载。</p>
<p align="left"><br />3）为了改变演示安装里KickStart使用的数据库，产生一个新的activiti.cfg.jar,并将它放置到apps/apache-tomcat-6.x/webapps/activiti-kickstart/WEB-INF/lib文件夹。&nbsp;</p><p align="left"><br /></p><p align="left"></p><div><div>4）将JDBC DRIVER JAR拷贝到setup\files\dependencies\libs中，并将类似libs.webapp.administrator的所有配置文件中如有对H2JAR引用的都增加对JDBC DRIVER JAR的引用</div></div><br /><br />六）修改浏览器的可执行文件路径<p>&nbsp;</p>
<p align="left">打开文件&#8220;setup\build.xml&#8221;修改属性windows.browser的值为浏览器的启动文件对应的位置。如我一直使用chrome，配置如下：</p>
<p align="left">&lt;property name=&#8221;windows.browser&#8221; value=&#8221;C:/Documents and Settings/dragon/Local Settings/Application Data/Google/Chrome/Application/chrome.exe&#8221; /&gt;</p>
<p>修改这个的目的是方便下面的&#8221;ant demo.start&#8221;结束后自动打开浏览器访问相关演示模块的首页。</p>
<p>注:在我的win7下系统上，使用chrome浏览器配置成了C:/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe但是在demo.start启动后没有打开浏览器，配置成Firefox浏览器启动路径也没有生效，原因有待查明中。</p>
<p align="left"><br />七）检查一下你的电脑是否已经使用了tomcat服务</p>
<p>如果使用了tomcat服务，得停掉，否测会冲突。顺便检查一下8080端口有没有被占用，否测也会冲突导致安装失败。</p>
<p align="left"><br />八）安装ant1.7和jdk1.5+环境</p>
<p>主要是设置环境变量ANT_HOME和JAVA_HOME，并将%ANT_HOME%\bin、%JAVA_HOME%\bin设置到path环境变量中。</p>
<p align="left"><br />九）一切就绪后就可以开始体验了</p>
<p>命令行切换到&#8220;setup/&#8221;，运行&#8221;ant demo.start&#8221;，等待整个安装过程自动完成吧，安装完毕后默认会自动打开浏览器。若没有启动浏览器，需自己手动打开浏览器在地址栏中输入访问地址。</p>
<p>可访问web应用如下：</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="111"><strong>Web</strong><strong>应用名称</strong></td>
<td valign="top" width="227"><strong>URL</strong></td>
<td valign="top" width="230"><strong>描述</strong></td></tr>
<tr>
<td valign="top" width="111">Activiti Probe</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-probe/"><font color="#2970a6">http://localhost:8080/activiti-probe/</font></a></td>
<td valign="top" width="230">管理员管理控制台。利用此工具可以查看配置的流程引擎是否被正确初始化了，以及数据库表的内容。</td></tr>
<tr>
<td valign="top" width="111">Activiti Explorer</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-explorer/"><font color="#2970a6">http://localhost:8080/activiti-explorer/</font></a></td>
<td valign="top" width="230">流程引擎控制台。利用此工具可以浏览个人以及候选任务列表，然后完成任务。</td></tr>
<tr>
<td valign="top" width="111">Activiti Cycle</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-cycle/"><font color="#2970a6">http://localhost:8080/activiti-cycle/</font></a></td>
<td valign="top" width="230">Activiti协作工具。利用此工具可以浏览仓库及在模型格式间执行切换</td></tr>
<tr>
<td valign="top" width="111">Activiti Modeler powered by signavio</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-modeler/p/explorer"><font color="#2970a6">http://localhost:8080/activiti-modeler/p/explorer</font></a></td>
<td valign="top" width="230">基于web的流程设计工具。利用此工具进行以图形化的方式编写复合bpmn2.0的流程定义文件。</td></tr>
<tr>
<td valign="top" width="111">Activiti Kickstart</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-kickstart"><font color="#2970a6">http://localhost:8080/activiti-kickstart</font></a></td>
<td valign="top" width="230">允许以临时的方式来快速而高效地指定流程。使用KickStart可以快速创建简单流程、快速原型以及临时的工作流。</td></tr>
<tr>
<td valign="top" width="111">Activiti Administrator</td>
<td valign="top" width="227"><a href="http://localhost:8080/activiti-administrator"><font color="#2970a6">http://localhost:8080/activiti-administrator</font></a></td>
<td valign="top" width="230">用于管理用户和用户组的web应用程序。目前它只是被当作独立的应用程序，但我们打算根据许可将有些web应用程序统一成一个web应用程序。</td></tr></tbody></table>
<p>演示用户</p>
<table border="1" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td valign="top" width="189"><strong>用户Id</strong></td>
<td valign="top" width="189"><strong>密码</strong></td>
<td valign="top" width="189"><strong>角色</strong></td></tr>
<tr>
<td valign="top" width="189">Kermit</td>
<td valign="top" width="189">Kermit</td>
<td valign="top" width="189">管理员</td></tr>
<tr>
<td valign="top" width="189">gonzo</td>
<td valign="top" width="189">gonzo</td>
<td valign="top" width="189">经理</td></tr>
<tr>
<td valign="top" width="189">fozzid</td>
<td valign="top" width="189">fozzid</td>
<td valign="top" width="189">用户</td></tr></tbody></table>
<p align="left"><br />十）新建一个流程并演示。</p>
<p align="left">访问：<a href="http://localhost:8080/activiti-modeler/"><font color="#2970a6">http://localhost:8080/activiti-modeler/</font></a></p>
<p align="left"><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/explorer.jpg"><font color="#2970a6"><img class="alignnone size-full wp-image-59" title="explorer" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/explorer.jpg" border="0" width="558" height="365" /></font></a></p>
<p align="left">访问后会看到左侧菜单栏中是当前workspace中自带的一些示例流程。</p>
<p align="left"><br />点击上方菜单new-&gt;Business process diagram菜单项，浏览器会打开activiti建模器</p>
<p align="left"><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/modeler.png"><img class="alignnone size-full wp-image-60" title="modeler" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/modeler.png" border="0" width="558" height="333" /></a></p>
<p align="left">如图，此图中描述了一个编写每月财务报告&#8212;&gt;审批财务报告的简单流程。(此处用自带的FinancialReportProcess流程做演示)</p>
<p align="left">图中看到的是一个 <a href="http://activiti.org/userguide/index.html#bpmnNoneStartEvent" target="_blank"><font color="#2970a6">none start event</font></a> （左边的圆圈），其次是两个 <a href="http://activiti.org/userguide/index.html#bpmnUserTask" target="_blank"><font color="#2970a6">user tasks</font></a>： <em>&#8220;</em><em>撰写财务报告</em><em>&#8220;</em>和<em>&#8221;</em><em>批准财务报告</em><em>&#8220;</em>，以<a href="http://activiti.org/userguide/index.html#bpmnNoneEndEvent" target="_blank"><font color="#2970a6"> none end event </font></a>（右边边框加粗型的圆圈） 结束。</p>
<ul><li><a href="http://activiti.org/userguide/index.html#bpmnNoneStartEvent" target="_blank"><font color="#2970a6">none start event </font></a>让我们认识到要开始一个流程。</li><li><a title="User task" href="http://activiti.org/userguide/index.html#bpmnUserTask"><font color="#2970a6">user tasks</font></a> 声明一个基于用户操作的流程任务. 注意第一个任务是分派用户组 <em>accountancy</em> 的, 而第二个任务是分派到用户组<em>management</em> 的. 查看 <a href="http://activiti.org/userguide/index.html#bpmnUserTaskAssignment" target="_blank"><font color="#2970a6">分派用户任务章节</font></a> 可以得到更多怎样分派任务到用户或组的信息。</li><li>当到达 <a href="http://activiti.org/userguide/index.html#bpmnNoneEndEvent" target="_blank"><font color="#2970a6">none end event </font></a>节点后流程就结束。 </li></ul>
<p>以用户<strong>fozzie</strong>（他是一个会计师）身份登录到Activiti Explorer(<a href="http://localhost:8080/activiti-explorer/"><font color="#2970a6">http://localhost:8080/activiti-explorer/</font></a>)，选择PROCESSES页签，在列表的Action列中点击流程&#8220;<em>Monthly financial report&#8217;</em>&#8221;的&#8220;S<em>tart Process&#8221;</em>链接来启动一个流程实例。如下图所示：</p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/processes.png"><img class="alignnone size-full wp-image-61" title="processes" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/processes.png" border="0" width="558" height="380" /></a></p>
<p><br />由于我们是以用户fozzie登录，故在我们启动了这个流程实例后，可以看到一个新的候选任务。我们这是切换到TASKS页签页去看看这个新任务（如下图），可以发现就算其他人启动的流程实例，所有属于用户组accountancy的用户都可以看到这个新的候选任务。</p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/accountancy.png"><img class="alignnone size-full wp-image-62" title="accountancy" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/accountancy.png" border="0" width="292" height="314" /></a></p>
<p><br />领取任务：</p>
<p>通过Activiti Explorer界面点击claim按钮将执行相同的领取任务操作。现在这个任务将显示在任务领取者的个人任务列表中，领取任务后，可以在my tasks中查看并点击页面上的complete按钮提交。</p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/task.png"><img class="alignnone size-full wp-image-63" title="task" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/task.png" border="0" width="558" height="259" /></a></p>
<p><br />现在注销掉fozzi用户并以<em>kermit</em>（他是管理者）用户登录，第二个任务现在就显示在待指定任务列表中了。Kermit用户和上一步的操作一样，可以对该任务进行领取和提交，至此，该流程就走完了。如下图所示：</p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/end.png"><img class="alignnone size-full wp-image-64" title="end" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/end.png" border="0" width="558" height="423" /></a></p>
<p>&nbsp;</p>
<p align="left"><br />我在安装使用过程中遇到如下一些问题：</p>
<p align="left">1）activiti-modeler-5.6.war不会自动发布，导致访问不了</p>
<p align="left">解决办法：自己将activiti-modeler-5.6.war手工解压到apps\apache-tomcat-6.0.29\webapps\activiti-modeler,并删除apps\apache-tomcat-6.0.29\webapps\activiti-modeler-5.6.war</p>
<p align="left"><br />2）tomcat控制台显示的中文乱码</p>
<p align="left">解决办法：修改文件apps\apache-tomcat-6.0.29\conf\logging.properties，增加如下一行的配置：</p>
<p align="left">java.util.logging.ConsoleHandler.encoding = GBK</p>
<p align="left"><br />3）使用activiti-modeler保存流程图前后台均会报错</p>
<p align="left">解决办法：创建目录apps\apache-tomcat-6.0.29\endorsed，并将jar文件&#8221;apps\apache-tomcat-6.0.29\webapps\activiti-modeler\WEB-INF\lib\jaxb-api.jar&#8221;复制到该目录下。<strong></strong></p>
<p align="left"><strong></strong></p>
<p><br />4)第一次安装后，新建流程中出现中文会出错，网上找了下没有找到解决方法，我又重新安装了一遍，没有该问题了，目前尚不清楚是由何引起的。</p>
<p>&nbsp;</p>
<p>安装eclipse designer插件：</p>
<p>需要eclipse版本为：Eclipse IDE for java EE developers(Helios Service)</p>
<p>打开Help-&gt;Install New software。在如下面板中，点击Add按钮，然后填写下列字段：</p>
<p>Name: Activiti BPMN 2.0 designer</p>
<p>Location: <a href="http://activiti.org/designer/update/"><font color="#2970a6">http://activiti.org/designer/update/</font></a></p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/addPlugin.png"><font color="#2970a6"><img class="alignnone size-full wp-image-65" title="addPlugin" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/addPlugin.png" border="0" width="558" height="221" /></font></a></p>
<p><br />添加完成后，eclipse会搜索到BPMN designer插件，选中后，按提示操作完成即可。</p>
<p>由于是在线安装，插件可能偏大，我在安装的过程中等待了很长时间，大约半个小时，所以如果安装此插件请耐心等待。</p>
<p>安装完成后，重启eclipse, 导入activiti自带的examples,在src/main/process/路径下，随便找个后缀名为bpmn20.xml的文件打开，就可以看到该插件的效果了，如图：</p>
<p><a href="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/showineclipse.png"><img class="alignnone size-full wp-image-66" title="showineclipse" alt="" src="http://createtao-wordpress.stor.sinaapp.com/uploads/2011/10/showineclipse.png" border="0" width="558" height="282" /></a></p>
<p><br />终于安装完成了，总结一下，在安装过程中，遇到了或多或少的问题，发现activiti的用户数不是那么多，因为好多问题网络上都搜索不到解决办法，都得自己再钻研一下，很是痛苦，不知啊现在国内有那个项目用activiti5的成功经验是否可以拿出来分享一下。</p><img src ="http://www.blogjava.net/paulwong/aggbug/372161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-19 00:19 <a href="http://www.blogjava.net/paulwong/archive/2012/03/19/372161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACTIVITI WEB DESIGNER</title><link>http://www.blogjava.net/paulwong/archive/2012/03/16/372031.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 16 Mar 2012 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/16/372031.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/372031.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/16/372031.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/372031.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/372031.html</trackback:ping><description><![CDATA[<ol>
     <li>下载代码：<strong><em>http</em></strong>://signavio-core-components.googlecode.com/svn/trunk<br />
     <br />
     </li>
     <li>修改build.properties<br />
     <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
     <br />
     Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
     http://www.CodeHighlighter.com/<br />
     <br />
     --><span style="color: #000000; ">#&nbsp;This&nbsp;is&nbsp;the&nbsp;Signavio&nbsp;Core&nbsp;Components&nbsp;configuration&nbsp;file.&nbsp;Most&nbsp;users&nbsp;only&nbsp;have&nbsp;to&nbsp;configure&nbsp;this&nbsp;file.<br />
     <br />
     #&nbsp;The&nbsp;path&nbsp;to&nbsp;your&nbsp;Apache&nbsp;Tomcat&nbsp;webapps&nbsp;folder这里就是生成WAR后，会自动拷贝过去的目录<br />
     dir-tomcat-webapps&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;/apache-tomcat-</span><span style="color: #000000; ">6.0.16</span><span style="color: #000000; ">/webapps<br />
     <br />
     #&nbsp;The&nbsp;path&nbsp;to&nbsp;your&nbsp;jBoss&nbsp;deployment&nbsp;folder<br />
     dir-jboss-webapps&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;/jboss-</span><span style="color: #000000; ">5.1.0</span><span style="color: #000000; ">/server/default/deploy<br />
     <br />
     #&nbsp;The&nbsp;folder&nbsp;the&nbsp;war&nbsp;file(s)&nbsp;is/are&nbsp;stored<br />
     target&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;target<br />
     <br />
     #&nbsp;The&nbsp;version&nbsp;of&nbsp;the&nbsp;application.&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;integrate&nbsp;the&nbsp;Signavio&nbsp;Core&nbsp;Components&nbsp;into<br />
     #&nbsp;&nbsp;your&nbsp;own&nbsp;software&nbsp;product</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&nbsp;you&nbsp;can&nbsp;align&nbsp;the&nbsp;version&nbsp;number.<br />
     version</span><span style="color: #000000; ">=</span><span style="color: #000000; ">5.0</span><span style="color: #000000; ">-SNAPSHOT<br />
     <br />
     #&nbsp;The&nbsp;name&nbsp;of&nbsp;the&nbsp;war&nbsp;file</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&nbsp;if&nbsp;you&nbsp;use&nbsp;the&nbsp;all-in-one-war&nbsp;build&nbsp;target<br />
     war&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;activiti-modeler<br />
     <br />
     #&nbsp;The&nbsp;configuration&nbsp;you&nbsp;want&nbsp;to&nbsp;use.&nbsp;This&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;folder&nbsp;in&nbsp;the&nbsp;'configuration'&nbsp;project<br />
     #&nbsp;&nbsp;that&nbsp;contains&nbsp;the&nbsp;configuration&nbsp;and&nbsp;skin&nbsp;files.&nbsp;The&nbsp;following&nbsp;configurations&nbsp;are&nbsp;available:<br />
     #&nbsp;&nbsp;default</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&nbsp;Activiti</span><span style="color: #000000; ">,</span><span style="color: #000000; ">&nbsp;jBPM<br />
     #&nbsp;&nbsp;You&nbsp;can&nbsp;also&nbsp;add&nbsp;your&nbsp;own&nbsp;configuration&nbsp;in&nbsp;the&nbsp;'configuration'&nbsp;project.<br />
     configuration&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;Activiti<br />
     <br />
     #&nbsp;The&nbsp;URL&nbsp;of&nbsp;your&nbsp;server.&nbsp;Format:&nbsp;http(s)://&lt;domain&gt;(:&lt;port&gt;)这里要填实际的IP<br />
     #&nbsp;&nbsp;Do&nbsp;not&nbsp;add&nbsp;a&nbsp;trailing&nbsp;slash&nbsp;here!<br />
     host&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; "></span> http://10.5.12.248:8180/<span style="color: #000000; ">
     <br />
     <br />
     #&nbsp;The&nbsp;path&nbsp;on&nbsp;your&nbsp;system&nbsp;the&nbsp;directories&nbsp;and&nbsp;diagram&nbsp;files&nbsp;are&nbsp;created.这里就是图形文件保存的地方<br />
     #&nbsp;Do&nbsp;not&nbsp;use&nbsp;\&nbsp;!&nbsp;Always&nbsp;use&nbsp;/&nbsp;!<br />
     fileSystemRootDirectory&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;../../../workspace/activiti-modeler-examples</span></div>
     </li><br />
     <li><span style="color: #000000;">要特别注意编码，否则会编译失败，修改EDITOR中的build.properties<br />
     </span>
     <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
     <br />
     Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
     http://www.CodeHighlighter.com/<br />
     <br />
     --><span style="color: #000000; ">&lt;java&nbsp;dir</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${build}</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;jar</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">${root}/lib/yuicompressor-2.4.2.jar</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;fork</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">true</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;failonerror</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">true</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;output</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'${compress.temp}'&gt;<br />
     &nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;add&nbsp;a&nbsp;row&nbsp;as&nbsp;follow&nbsp;--&gt;&nbsp;<br />
     &nbsp;&nbsp;&nbsp;&nbsp;&lt;sysproperty&nbsp;key</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">file.encoding</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;value</span><span style="color: #000000; ">=</span><span style="color: #000000; ">"</span><span style="color: #000000; ">UTF-8</span><span style="color: #000000; ">"</span><span style="color: #000000; ">/&gt;&nbsp;&lt;arg&nbsp;file</span><span style="color: #000000; ">=</span><span style="color: #000000; ">'${build}/oryx.debug.js'&nbsp;/&gt;&nbsp;<br />
     &lt;/java&gt; <br />
     </span></div>
     <br />
     </li>
     <li><span style="color: #000000;">运行命令<br />
     </span>
     <div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br />
     <br />
     Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
     http://www.CodeHighlighter.com/<br />
     <br />
     --><span style="color: #000000; ">ant&nbsp;build-and-deploy-all-in-one-war-to-tomcat</span></div>
     <br />
     </li>
     <li><span style="color: #000000; ">打开浏览器输入网址：http://10.5.12.248:8180/activiti-modeler即可<br />
     </span></li>
</ol><img src ="http://www.blogjava.net/paulwong/aggbug/372031.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-16 11:37 <a href="http://www.blogjava.net/paulwong/archive/2012/03/16/372031.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>activiti 5.4 demo基于oracle数据库安装配置</title><link>http://www.blogjava.net/paulwong/archive/2012/03/14/371867.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 14 Mar 2012 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/14/371867.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/371867.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/14/371867.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/371867.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/371867.html</trackback:ping><description><![CDATA[<div>一、环境下载<br /><ol><li>Activiti5.4.zip</li><li>activiti-modeler-5.4.war</li><li>apache-tomcat-6.0.20.zip</li><li>jdk 1.6full22</li><li>ant1.8.2</li><li>oracle 10g rc2</li></ol><br />二、环境准备<br /><ol><li>安装jdk1.6full22 配置JAVA_HOME,CLASS_PATH,PATH</li><li>安装ant1.8.2，配置ANT_HOME,PATH</li><li>安装oracle 10g rc2,创建用户：activiti/activiti(建议为其创建独立表空间和临时表空间),分配create session,resource,dba权限；</li><li>解压Activiti5.4.zip-&gt;../activiti-5.4(即activiti_home)</li><li>将activiti-modeler-5.4.war和apache-tomcat-6.0.20.zip放到activiti_home/downloads</li></ol><br />三、activiti5.4 demo相关配置<br /><ol><li>指定demo数据库为oracle 10g<br />修改activiti_home/setup/build.properties:db=H2-&gt;db=oracle<br /><br /></li><li>指定自选版本的tomcat(建议6.0以上，这里用的是6.0.2.0，以下为测试过)&nbsp;&nbsp;&nbsp; <br />修改activiti_home/setup/build.properties:tomcat.version=6.0.32-&gt;tomcat.version=6.0.2.0<br /><br /></li><li>指定自己下载的activiti-modeler-5.4.war和apache-tomcat-6.0.20.zip(这里必须与tomcat.version一致)&nbsp; <br />修改downloads.dir=../../downloads-&gt;downloads.dir=activiti_home/downloads<br /><br /></li><li>配置oracle数据库信息，主要修改activiti_home/setup/build.oracle.properties:&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">db</span><span style="color: #000000; ">=</span><span style="color: #000000; ">oracle<br />jdbc.driver</span><span style="color: #000000; ">=</span><span style="color: #000000; ">oracle.jdbc.driver.OracleDriver<br />jdbc.url</span><span style="color: #000000; ">=</span><span style="color: #000000; ">jdbc:oracle:thin:@localhost:</span><span style="color: #000000; ">1521</span><span style="color: #000000; ">:ORCL<br />jdbc.username</span><span style="color: #000000; ">=</span><span style="color: #000000; ">activiti<br />jdbc.password</span><span style="color: #000000; ">=</span><span style="color: #000000; ">activiti</span></div><br /><br /></li><li>修改tomcat的8080为80端口，主要修改activiti_home/setup/build.xml配置（两处）：<br />&lt;replacetoken&gt;&lt;![CDATA[port="8080"]]&gt;&lt;/replacetoken&gt;<br />&lt;replacevalue&gt;&lt;![CDATA[port="80" URIEncoding="UTF-8"]]&gt;&lt;/replacevalue&gt;<br />注意：如果修改了默认端口，需要修改配置文件里所有默认端口为指定端口<br /><br /></li><li>指定自己的浏览器，这里用的是firefox，如果配的浏览器不存会取当前系统默认浏览器<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">property&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="windows.browser"</span><span style="color: #FF0000; ">&nbsp;value</span><span style="color: #0000FF; ">="F:/application/Mozilla&nbsp;Firefox/firefox.exe"</span><span style="color: #FF0000; ">&nbsp;</span><span style="color: #0000FF; ">/&gt;</span></div><br /><br /></li><li>指定自己数据库对应的jdbc driver默为ojdbc5*.jar，这里指为ojdbc14.jar，修改如下：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">include&nbsp;</span><span style="color: #FF0000; ">name</span><span style="color: #0000FF; ">="ojdbc1*.jar"</span><span style="color: #FF0000; ">&nbsp;if</span><span style="color: #0000FF; ">="db.is.oracle"</span><span style="color: #0000FF; ">/&gt;</span></div><br />并把ojdbc14.jar放到:activiti_home/setup/files/dependencies/libs和activiti_home/setup/files/webapps所有web工程对应的lib里（这个在安装发布相应工程为自动复制到相应的应用里）<br /><br /></li><li>解决安装过程中中文显示乱码问题（这里不能解决安装一小段显示乱码问题），在activiti_home/setup/files/tomcat/logging.properties添加如下内容：<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">java.util.logging.ConsoleHandler.encoding&nbsp;</span><span style="color: #000000; ">=</span><span style="color: #000000; ">&nbsp;GBK</span></div><br /></li><li>在activiti_home/setup运行ant cfg.create命令生成修改后的activti配置，这些信息都放在新生成的activiti_home/setup/build文件里<br />这里最关键的两个文件:activiti.cfg.xml和activiti-cfg.jar<br /><br /></li><li>替换activiti_home/setup/files/cfg.activiti/standalone/activiti.cfg.xml为新生成的activiti.cfg.xml<br /><br /></li><li>替换activiti_home/setup/files/webapps下所有activiti-cfg.jar为新生成的activiti-cfg.jar<br /><br /></li><li>修改activiti_home/setup/files/cfg.modeler/configuration.properties里host = http://localhost:8080为host = http://localhost(这里用的是80端口)</li></ol><br />&nbsp;&nbsp; &nbsp;</div><img src ="http://www.blogjava.net/paulwong/aggbug/371867.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-14 15:19 <a href="http://www.blogjava.net/paulwong/archive/2012/03/14/371867.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Web工作流设计器</title><link>http://www.blogjava.net/paulwong/archive/2012/03/11/371688.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 11 Mar 2012 13:46:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/11/371688.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/371688.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/11/371688.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/371688.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/371688.html</trackback:ping><description><![CDATA[<a href="http://www.duobee.com/demos/workfloweditor.html" target="_blank">http://www.duobee.com/demos/workfloweditor.html</a><img src ="http://www.blogjava.net/paulwong/aggbug/371688.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-11 21:46 <a href="http://www.blogjava.net/paulwong/archive/2012/03/11/371688.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个JBPM流程设计器</title><link>http://www.blogjava.net/paulwong/archive/2012/03/01/371041.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 29 Feb 2012 16:38:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/03/01/371041.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/371041.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/03/01/371041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/371041.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/371041.html</trackback:ping><description><![CDATA[<a href="https://github.com/bluesoft-rnd/aperte-workflow-core/wiki" target="_blank">https://github.com/bluesoft-rnd/aperte-workflow-core/wiki</a><img src ="http://www.blogjava.net/paulwong/aggbug/371041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-03-01 00:38 <a href="http://www.blogjava.net/paulwong/archive/2012/03/01/371041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ACTIVITI(JBPM5)</title><link>http://www.blogjava.net/paulwong/archive/2012/02/27/370873.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 27 Feb 2012 12:32:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2012/02/27/370873.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/370873.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2012/02/27/370873.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/370873.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/370873.html</trackback:ping><description><![CDATA[<ol><li><a title="Activiti 5.3：子流程（subProcess） " href="http://www.oschina.net/question/54100_39418">Activiti 5.3：子流程（subProcess） </a></li><li><a title="Activiti 5.3：配置与 Spring 整合 " href="http://www.oschina.net/question/54100_39415">Activiti 5.3：配置与 Spring 整合 </a></li><li><a title="Activiti 5.3：流程活动自动与手工触发执行 " href="http://www.oschina.net/question/54100_39414">Activiti 5.3：流程活动自动与手工触发执行 </a></li><li><a title="Activiti 5.3 安装配置 " href="http://www.oschina.net/question/54100_39410">Activiti 5.3 安装配置 </a></li></ol><br /><br />
<ol><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2010/12/16/340933.html"><font color="#223355">Activiti in Action（实战Activiti）-目录</font></a></li><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2010/12/18/341075.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（1）</font></a></li><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2011/01/01/342119.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（2）</font></a></li><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2011/01/01/342136.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（3）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl09_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/02/342173.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（4）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl08_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/03/342199.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（5）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl07_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/03/342208.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（6）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl06_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/04/342304.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（7）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl05_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/04/342322.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（8）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl04_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/05/342376.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（9）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl03_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/06/342454.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（10）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl02_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/01/08/342571.html"><font color="#223355">Activiti in Action（实战Activiti）-第一章 BPMN 2.0: what&#8217;s in it for developers?（11）</font></a></li><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2011/01/10/342729.html"><font color="#223355">Activiti User Guide（Activiti用户指南)-Chapter 17. Activiti KickStart</font></a></li><li><a id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.blogjava.net/lewhwa/archive/2011/03/07/345911.html"><font color="#223355">Activiti User Guide（Activiti用户指南)-Chapter 18. JBPM Migration（JBPM 迁移）（1）</font></a></li><li><a id="AjaxHolder_PostComment_ctl08_RelativePostsList_ctl01_Hyperlink1" href="http://www.blogjava.net/lewhwa/archive/2011/03/08/345975.html"><font color="#223355">Activiti User Guide（Activiti用户指南)-Chapter 18. JBPM Migration（JBPM 迁移）（2）</font></a> </li></ol>
<p>&nbsp;</p><p>&nbsp;</p><div>ACTIVITI IN ACTION 源码下载：<br />http://code.google.com/p/activitiinaction/downloads/detail?name=ActivitiInAction_sourcecode.zip&amp;can=2&amp;q=</div><br /><p>&nbsp;</p><img src ="http://www.blogjava.net/paulwong/aggbug/370873.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2012-02-27 20:32 <a href="http://www.blogjava.net/paulwong/archive/2012/02/27/370873.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM 4.4概念解释</title><link>http://www.blogjava.net/paulwong/archive/2011/04/17/348446.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 17 Apr 2011 11:18:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2011/04/17/348446.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/348446.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2011/04/17/348446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/348446.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/348446.html</trackback:ping><description><![CDATA[<strong>概念解释<br />
</strong>在实际的业务中，对于工作流一般是这样定义的：<br />
定义完成某项工作需要多少个环节，每个环节由哪些人处理，完成这项工作的表单。<br />
实际处理的时候，通常由发起人填好表单，然后去找各个环节的负责人签字审批，一直到流程结束。<br />
在JBPM的框架中，用ProcessDefinition来描述某项工作，Activity描述各个定义的环节，Transition描述环节中的路径。<br />
ProcessDefinitionInstance来描述实际执行的工作，可能是继承了ProcessDefinition，但又多出很多属性，如建立时间，发起人等，<br />
Task或Excution来描述实际执行的步骤。<br />
相应地有RespositoryService，ExcutionService，TaskService，来操作ProcessDefinition，Excution，Task，使工作一步步地往定义好的步骤往下走。<br />
Excution表示实际流程中的当前环节，即以前的Token。<br />
<br />
<strong>编程实务<br />
</strong>画好流程图，即定义流程，画好一堆的步骤。<br />
作好每个环节中要展示的JSP页面，并配到流程定义中。<br />
写好每个环节提交后要处理的JAVA代码。<br />
<br />
<strong>JBPM流程定义<br />
</strong>流程定义的中间环节有两种：<br />
一种是流程引擎碰到这种环节，会自动流转到下一环节，如Decision，Java等。<br />
另一种是流程引擎碰到这种环节，会处于等待状态，直到程序下指令如：excuSinal才流转到下一环节，<br />
这里面又分两种：一种是有处理人属性的Task，由处理人决定下一环节的流向，另一种是没设处理人，由程序决定下一环节的走向，如State。<br />
实际流程中可以放变量值，以供整个流程环节存取。<br />
如果流程定义中用了变量或表达式，则其实际值，会取实际流程中放进去的值。<br />
如Task节点：<br />
加一个Task节点时，将assignee设成表达式，这样在生成Task记录时，会读取绑定到流程实例中变量的值，作为assignee的值，<br />
也可以指定一个CLASS，在生成Task记录时，会运行其中的assign方法，读取assignable中的getAssignee()的值，作为Task的分配人。<br />
<br />
<strong>退回的解决方案<br />
</strong>退回就是将此Task退回到上一环节的处理人处。<br />
画图的时候不画退回的路径，但在程序处理中用代码加这一Task指向上一环节的路径，complete(taskId,newTransition)使其回到上一环节，然后再删除这一Transition。<br />
<br />
<strong>会签的解决方案<br />
</strong>会签指的是将同一任务同时分派给多人并行处理。<br />
用For-each和join实现，或动态增加子任务。<br />
<img src ="http://www.blogjava.net/paulwong/aggbug/348446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2011-04-17 19:18 <a href="http://www.blogjava.net/paulwong/archive/2011/04/17/348446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM4中常用概念总结</title><link>http://www.blogjava.net/paulwong/archive/2011/04/16/348397.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sat, 16 Apr 2011 04:55:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2011/04/16/348397.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/348397.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2011/04/16/348397.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/348397.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/348397.html</trackback:ping><description><![CDATA[<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">1. 流程定义(Process Definition)</span></strong><br />
&nbsp;&nbsp; 流程定义是记录在xml文件中的对流程的描述，它包含唯一的流程开始节点和多个流程功能节点，每个节点之间使用transition进行连接。<br />
&nbsp;&nbsp;&nbsp; Process Definition使用id, key和version进行标识，jBPM中可能包含多个key值相同的Process Definition，key值相同的Process Definition会拥有不同的version值，而id是使用key-version的形式用来表示唯一的Process Definition的。<br />
&nbsp;&nbsp; jBPM中使用RepositoryService来控制流程定义的发布，浏览，删除等操作。</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><span style="color: #333399; "><strong style="font-weight: bold; "><span style="color: #000000; ">2. 流程实例(Process Instance)</span></strong><br />
</span>&nbsp;&nbsp; 以流程定义为蓝本生成的流程实例，在jBPM属于Execution的一种。<br />
&nbsp;&nbsp; 当我们执行start时，会根据流程定义启动一个新的流程实例，然后它会根据流程定义里的节点运行，在遇到state或task时停顿，等待外部用户调用signal，最后会执行到end节点，结束整个流程。<br />
&nbsp;&nbsp; jBPM中只允许有一个start节点，所以每个流程都是单一入口的，jBPM4中可以允许有多个end节点，所以我们可以在任意位置结束流程。<br />
&nbsp;&nbsp; jBPM中使用ExecutionService来控制流程实例的启动，浏览，执行，删除等操作</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">3. state节点</span></strong><br />
&nbsp;&nbsp; 状态结点是一个典型的等待状态。同任务结点不同的是，状态结点不会向任务列表添加任务实例。当业务进程需要等待外部系统的干预时，这种结点是很有用的。（需要外部系统干预，但又不是让人去干预）假设如下情况：在进入该结点时，通过node-enter事件向外部系统发送一个消息，然后结点进入等待状态；当外部系统完成处理，并回送一个消息，这将导致触发一个signal()方法的运行，该方法重新激活正在等待的流程继续下行<br />
&nbsp;&nbsp; jBPM中使用ExecutionService来控制对state的signal操作。</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">4. task节点</span></strong><br />
&nbsp;&nbsp; 任务结点（task-node）任务结点是代表由人介入的一个或多个任务。因此当流程运行到一个任务结点时，会生成&#8220;任务实例对象（task instances）&#8221;，并添加到参与人的任务列表中，之后结点会处于等待状态，直到参与人完成他们的任务，并激活流程继续向下执行。<br />
&nbsp;&nbsp; task节点可以使用assignee, swimelane等方式为任务定义分配到某个人或者某个组，对应的用户可以执行completeTask()结束任务，并控制任务结束后流程实例向哪个方向前进。<br />
&nbsp;&nbsp; jBPM中使用TaskService控制task的各项操作。</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">5. Identity身份验证</span></strong><br />
&nbsp;&nbsp; jBPM中的身份验证分为User, Group和Membership三部分，用户表示登陆用户，Group表示用户组，用户和用户组之间的关联关系保存在Membership中。User和Group与Task中的assignee和swimelane是息息相关的。<br />
&nbsp;&nbsp;&nbsp;<br />
<strong style="font-weight: bold; "><span style="color: #000000; ">6.事件</span></strong><br />
&nbsp;&nbsp; Event反映的是流程执行中的各个时刻。在流程执行中 JBPM引擎会在计算下一个状态的时候触发各种事件。一个事件通常和流程定义中的一个元素相关联，比如流程定义本身，节点或者转移。大部分的元素能够触发不同类型的事件，比如一个节点可以触发节点进入事件，节点离开事件。事件其实是和动作连接在一起的。每个事件维护一个动作列表。当JBPM引擎触发一个事件的时候，该事件维护的动作列表中的动作将被执行。</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">JBPM中事件类型是写死在事件类中的，共有16种：<br />
EVENTTYPE_TRANSITION = "transition"; // 转移<br />
EVENTTYPE_BEFORE_SIGNAL = "before-signal"; // 发信号前<br />
EVENTTYPE_AFTER_SIGNAL = "after-signal"; // 发信号后<br />
EVENTTYPE_PROCESS_START = "process-start"; // 处理开始状态<br />
EVENTTYPE_PROCESS_END = "process-end"; // 处理结束状态<br />
EVENTTYPE_NODE_ENTER = "node-enter"; // 进入节点<br />
EVENTTYPE_NODE_LEAVE = "node-leave"; // 离开节点<br />
EVENTTYPE_SUPERSTATE_ENTER = "superstate-enter"; // 进入超级状态<br />
EVENTTYPE_SUPERSTATE_LEAVE = "superstate-leave"; // 离开超级状态<br />
EVENTTYPE_SUBPROCESS_CREATED = "subprocess-created"; // 子流程创建<br />
EVENTTYPE_SUBPROCESS_END = "subprocess-end"; // 子流程结束<br />
EVENTTYPE_TASK_CREATE = "task-create"; // 任务创建<br />
EVENTTYPE_TASK_ASSIGN = "task-assign"; // 任务分派<br />
EVENTTYPE_TASK_START = "task-start"; // 任务启动<br />
EVENTTYPE_TASK_END = "task-end"; // 任务结束<br />
EVENTTYPE_TIMER = "timer"; // 定时器</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">7.transition</span></strong><br />
&nbsp;&nbsp; 关联两个节点，用于表示节点的走向</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; "><strong style="font-weight: bold; "><span style="color: #000000; ">8.常用类说明</span></strong><br />
&nbsp;&nbsp; ProcessEngine：它是整个jBPM4的入口，并且是单例模式。通过它可以获取processEngine，并藉此获得工作流引擎所提供的各种服务<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp; RepositoryService：控制流程定义的发布，浏览，删除等操作<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp; ExecutionService：控制流程实例的启动，浏览，执行，删除等操作</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">&nbsp;&nbsp; IdentityService：控制身份的各项操作</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">*********************************************************************************************</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; color: #000000; "><strong style="font-weight: bold; ">对jBPM4.3数据库的几张表简单介绍</strong></span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><br />
<span style="font-size: medium; color: #ff0000; ">JBPM4_DEPLOYMENT&nbsp;&nbsp; 流程定义表&nbsp;<br />
JBPM4_DEPLOYPROP 流程定义属性表</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; color: #ff0000; ">JBPM4_EXECUTION&nbsp; 流程实例表&nbsp;<br />
JBPM4_HIST_ACTINST 流程活动(节点)实例表</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; color: #ff0000; ">JBPM4_HIST_DETAIL&nbsp; 流程历史详细表</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; color: #ff0000; ">JBPM4_HIST_PROCINST 流程实例历史表</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; color: #ff0000; ">JBPM4_HIST_TASK&nbsp; 流程任务实例历史表&nbsp;<br />
JBPM4_HIST_VAR&nbsp; 流程变量(上下文)历史表</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">JBPM4_ID_GROUP 角色表&nbsp;<br />
JBPM4_ID_MEMBERSHIP 用户角色表&nbsp;<br />
JBPM4_ID_USER&nbsp; 用户表&nbsp;<br />
<span style="color: #ff0000; ">JBPM4_JOB&nbsp; 定时表&nbsp;<br />
JBPM4_LOB&nbsp; 存储表</span>&nbsp;<br />
JBPM4_PARTICIPATION 参与者表&nbsp;<br />
<span style="color: #ff0000; ">JBPM4_SWIMLANE&nbsp; 泳道表&nbsp;<br />
JBPM4_TASK 任务表&nbsp;<br />
JBPM4_VARIABLE 上下文表</span></span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">红色的表为经常使用的表.这里不使用JBPM自己的权限角色定义.</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">发布一个流程deploy后<br />
jbpm4_deployment新增一条记录<br />
jbpm4_deployprop新增三条记录<br />
jbpm4_lob新增一条记录</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">开始一个流程startProcessInstanceByKey后<br />
jbpm4_execution新增一条记录<br />
jbpm4_hist_actinst新增一条记录<br />
jbpm4_hist_procinst新增一条记录<br />
jbpm4_hist_task新增一条记录<br />
jbpm4_task新增一条记录</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-family: Arial, sans-serif, Helvetica, Tahoma; font-size: 12px; line-height: 18px; "><span style="font-size: medium; ">流程定义相关的布署信息就存储在（1） JBPM4_DEPLOYMENT、（2） JBPM4_DEPLOYPROP 及（3） JBPM4_LOB 中。上传一个包含png和jpdl.xml的zip包后，JBPM4_DEPLOYMENT多一条记录 JBPM4_DEPLOYPROP多三条， JBPM4_LOB多两条。&nbsp;<br />
（4）J B PM4_HIST_PROCINST 与（5） JBPM4_HIST_ACTINST 分别存放的是Process Instance、Activity Instance的历史记录。<br />
（6）JBPM4_EXECUTION 主要是存放JBPM4的执行信息，Execution机制代替了JBPM3的Token机制（详细参阅JBPM4的PVM机制，过段时间我也会进一步分析）。<br />
（7）JBPM4_TASK 存放需要人来完成的Activities，需要人来参与完成的Activity 被称为Task。<br />
（8）JBPM4_PARTICIPATION 存放Participation的信息，Participation的种类有Candidate、Client、Owner、 Replaced Assignee和Viewer。而具体的Participation既可以是单一用户，也可以是用户组。<br />
（9）JBPM4_SWIMLANE。 Swim Lane是一种Runtime Process Role。通过Swim Lane，多个Task可以一次分配到同一Actor身上。<br />
（10） JBPM4 _VARIABLE 存的是进行时的临时变量。<br />
（11） JBPM4_HIST_DETAIL 保存Variable的变更记录。&nbsp;<br />
（12）JBPM4_HIST_VAR 保存历史的变量 。&nbsp;<br />
（13） JBPM4_HIST_TASK Task的历史信息。&nbsp;<br />
（14）JBPM4_ID_GROUP （15）JBPM_ID_MEMBERSHIP （16）JBPM4_ID_USER 这三张表很常见了，基本的权限控制，关于用户认证方面建议还是自己开发一套，JBPM4的功能太简单了，使用中有很多需要难以满足。&nbsp;<br />
（17） JBPM4_JOB 存放的是Timer的定义。</span></p>
<img src ="http://www.blogjava.net/paulwong/aggbug/348397.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2011-04-16 12:55 <a href="http://www.blogjava.net/paulwong/archive/2011/04/16/348397.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM 4入门介绍</title><link>http://www.blogjava.net/paulwong/archive/2010/09/29/333435.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 29 Sep 2010 15:09:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2010/09/29/333435.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/333435.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2010/09/29/333435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/333435.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/333435.html</trackback:ping><description><![CDATA[JBPM 4入门介绍：<br />
<br />
<a href="http://www.blogjava.net/sxyx2008/archive/2010/09/28/333256.html" target="_blank">http://www.blogjava.net/sxyx2008/archive/2010/09/28/333256.html</a><br />
<br />
<br />
<a id="viewpost1_TitleUrl" href="http://www.blogjava.net/sxyx2008/archive/2010/09/29/333385.html">跟我学JBPM4之State、Decision 、Task活动</a> <br />
<br />
<br />
<a href="http://www.blogjava.net/sxyx2008/archive/2010/09/29/333385.html" target="_blank">http://www.blogjava.net/sxyx2008/archive/2010/09/29/333385.html</a>
<img src ="http://www.blogjava.net/paulwong/aggbug/333435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2010-09-29 23:09 <a href="http://www.blogjava.net/paulwong/archive/2010/09/29/333435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jbpm4.3与spring集成</title><link>http://www.blogjava.net/paulwong/archive/2010/01/08/308698.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 08 Jan 2010 04:40:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2010/01/08/308698.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/308698.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2010/01/08/308698.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/308698.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/308698.html</trackback:ping><description><![CDATA[jbpm4.2与spring集成有点问题，直接跟据它自己的&#8220;开发指南&#8221;提供的方法是不能集成的。在官网查到的信息是发布4.2时，忘记更新集成spring的文件。不过4.3已经把该bug改过来了。下面是集成方法。<br />
<br />
版本：<br />
jbpm4.3<br />
spring2.5.6<br />
mysql5.1.40<br />
<br />
直接从jbpm4.3自带的文件到src目录:<br />
从jbpm-4.3"install"src"cfg"hibernate"jdbc复制mysql.hibernate.cfg.xml到src目录，文件名改为hibernate.cfg.xml。<br />
从jbpm-4.3"install"src"cfg"spring复制applicationContext.xml到src目录。<br />
从jbpm-4.3"install"src"cfg"jbpm复制spring.jbpm.cfg.xml到src目录，文件名改为jbpm.cfg.xml。<br />
修改applicationContext.xml、hibernate.cfg.xml的数据库配置信息，jbpm4.3与spring的集成就完成了，可以自己写测试文件测试，集成非常容易。<br />
<br />
不过在applicationContext.xml和hibernate.cfg.xml两个文件都要改数据库信息有点麻烦，所以只复制applicationContext.xml、spring.jbpm.cfg.xml两个文件到src目录，把hibernate.cfg.xml的配置整进spring的配置文件applicationContext.xml中。<br />
applicationContext.xml<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">beans&nbsp;</span><span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://www.springframework.org/schema/beans"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:aop</span><span style="color: #0000ff">="http://www.springframework.org/schema/aop"</span><span style="color: #ff0000">&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:context</span><span style="color: #0000ff">="http://www.springframework.org/schema/context"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:p</span><span style="color: #0000ff">="http://www.springframework.org/schema/p"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tx</span><span style="color: #0000ff">="http://www.springframework.org/schema/tx"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation</span><span style="color: #0000ff">="<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/beans&nbsp;http://www.springframework.org/schema/beans/spring-beans-2.5.xsd<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/aop&nbsp;http://www.springframework.org/schema/aop/spring-aop-2.5.xsd<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/context&nbsp;http://www.springframework.org/schema/context/spring-context-2.5.xsd<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://www.springframework.org/schema/tx&nbsp;http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">context:annotation-config&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;p:location</span><span style="color: #0000ff">="hibernate.properties"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;p:ignoreUnresolvablePlaceholders</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="springHelper"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="org.jbpm.pvm.internal.processengine.SpringHelper"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="processEngine"</span><span style="color: #ff0000">&nbsp;factory-bean</span><span style="color: #0000ff">="springHelper"</span><span style="color: #ff0000">&nbsp;factory-method</span><span style="color: #0000ff">="createProcessEngine"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="mappingResources"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jbpm.repository.hbm.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jbpm.execution.hbm.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jbpm.history.hbm.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jbpm.task.hbm.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">jbpm.identity.hbm.xml</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hibernateProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="hibernate.dialect"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${dataSource.dialect}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="hibernate.hbm2ddl.auto"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${dataSource.hbm2ddl.auto}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.hibernate3.HibernateTransactionManager"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="org.springframework.jdbc.datasource.DriverManagerDataSource"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="driverClassName"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${dataSource.driverClassName}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="url"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${dataSource.url}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="username"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${dataSource.username}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="password"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="${dataSource.password}"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">beans</span><span style="color: #0000ff">&gt;</span></div>
<br />
<br />
新建文件hibernate.properties,主要用来配置连接数据库信息<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">dataSource.password</span><span style="color: #000000">=</span><span style="color: #000000">123</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.username</span><span style="color: #000000">=</span><span style="color: #000000">root<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.databaseName</span><span style="color: #000000">=</span><span style="color: #000000">jbpmdb<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.driverClassName</span><span style="color: #000000">=</span><span style="color: #000000">com.mysql.jdbc.Driver<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.dialect</span><span style="color: #000000">=</span><span style="color: #000000">org.hibernate.dialect.MySQLInnoDBDialect<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.serverName</span><span style="color: #000000">=</span><span style="color: #000000">localhost:</span><span style="color: #000000">3306</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.url</span><span style="color: #000000">=</span><span style="color: #000000">jdbc:mysql://${dataSource.serverName}/${dataSource.databaseName}<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />dataSource.properties</span><span style="color: #000000">=</span><span style="color: #000000">user</span><span style="color: #000000">=</span><span style="color: #000000">${dataSource.username}</span><span style="color: #008000">;</span><span style="color: #008000">databaseName=${dataSource.databaseName};serverName=${dataSource.serverName};password=${dataSource.password}</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">dataSource.hbm2ddl.auto</span><span style="color: #000000">=</span><span style="color: #000000">update</span></div>
<br />
以后要改数据库配置信息也只在这个文件修改就可以了。<br />
<br />
测试用的流程swing.jpdl.xml<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">process&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="swing"</span><span style="color: #ff0000">&nbsp;xmlns</span><span style="color: #0000ff">="http://jbpm.org/4.3/jpdl"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">start&nbsp;</span><span style="color: #ff0000">g</span><span style="color: #0000ff">="94,64,48,48"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="start1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">transition&nbsp;</span><span style="color: #ff0000">g</span><span style="color: #0000ff">="-52,-22"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="A"</span><span style="color: #ff0000">&nbsp;to</span><span style="color: #0000ff">="A"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">start</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">task&nbsp;</span><span style="color: #ff0000">assignee</span><span style="color: #0000ff">="A"</span><span style="color: #ff0000">&nbsp;g</span><span style="color: #0000ff">="73,195,92,52"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="A"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">transition&nbsp;</span><span style="color: #ff0000">g</span><span style="color: #0000ff">="-52,-22"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="B"</span><span style="color: #ff0000">&nbsp;to</span><span style="color: #0000ff">="B"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">task</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">task&nbsp;</span><span style="color: #ff0000">assignee</span><span style="color: #0000ff">="B"</span><span style="color: #ff0000">&nbsp;g</span><span style="color: #0000ff">="266,192,92,52"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="B"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">transition&nbsp;</span><span style="color: #ff0000">g</span><span style="color: #0000ff">="-40,-21"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="end"</span><span style="color: #ff0000">&nbsp;to</span><span style="color: #0000ff">="end1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">task</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">end&nbsp;</span><span style="color: #ff0000">g</span><span style="color: #0000ff">="290,327,48,48"</span><span style="color: #ff0000">&nbsp;name</span><span style="color: #0000ff">="end1"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">process</span><span style="color: #0000ff">&gt;</span></div>
<br />
<br />
测试代码<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_18_1475_Open_Image" onclick="this.style.display='none'; Codehighlighter1_18_1475_Open_Text.style.display='none'; Codehighlighter1_18_1475_Closed_Image.style.display='inline'; Codehighlighter1_18_1475_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_18_1475_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_18_1475_Closed_Text.style.display='none'; Codehighlighter1_18_1475_Open_Image.style.display='inline'; Codehighlighter1_18_1475_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Main&nbsp;</span><span id="Codehighlighter1_18_1475_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_18_1475_Open_Text"><span style="color: #000000">{<br />
<img id="Codehighlighter1_64_1473_Open_Image" onclick="this.style.display='none'; Codehighlighter1_64_1473_Open_Text.style.display='none'; Codehighlighter1_64_1473_Closed_Image.style.display='inline'; Codehighlighter1_64_1473_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_64_1473_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_64_1473_Closed_Text.style.display='none'; Codehighlighter1_64_1473_Open_Image.style.display='inline'; Codehighlighter1_64_1473_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;main(String[]&nbsp;args)&nbsp;&nbsp;</span><span id="Codehighlighter1_64_1473_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_64_1473_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ClassPathXmlApplicationContext&nbsp;applicationContext&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;ClassPathXmlApplicationContext(</span><span style="color: #000000">"</span><span style="color: #000000">applicationContext.xml</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;applicationContext.start();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessEngine&nbsp;processEngine&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(ProcessEngine)applicationContext.getBean(</span><span style="color: #000000">"</span><span style="color: #000000">processEngine</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ExecutionService&nbsp;executionService&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;processEngine.getExecutionService();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TaskService&nbsp;taskService&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;processEngine.getTaskService();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">发布流程</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;deploymentId&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;processEngine.getRepositoryService().createDeployment()<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.addResourceFromClasspath(</span><span style="color: #000000">"</span><span style="color: #000000">resource/swing.jpdl.xml</span><span style="color: #000000">"</span><span style="color: #000000">).deploy();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">流程发布ID:</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">deploymentId);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">启动一个流程实例</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProcessInstance&nbsp;processInstance&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;executionService.startProcessInstanceByKey(</span><span style="color: #000000">"</span><span style="color: #000000">swing</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">流程实例ID:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;processInstance.getId());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">A处理任务</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Task</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;taskList_A&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;taskService.findPersonalTasks(</span><span style="color: #000000">"</span><span style="color: #000000">A</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">A待处理任务数:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;taskList_A.size());<br />
<img id="Codehighlighter1_1060_1165_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1060_1165_Open_Text.style.display='none'; Codehighlighter1_1060_1165_Closed_Image.style.display='inline'; Codehighlighter1_1060_1165_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1060_1165_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1060_1165_Closed_Text.style.display='none'; Codehighlighter1_1060_1165_Open_Image.style.display='inline'; Codehighlighter1_1060_1165_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(taskList_A.size()&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)</span><span id="Codehighlighter1_1060_1165_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1060_1165_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task&nbsp;task&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;taskList_A.get(</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskService.completeTask(task.getId());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">B处理任务</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Task</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;taskList_B&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;taskService.findPersonalTasks(</span><span style="color: #000000">"</span><span style="color: #000000">B</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(</span><span style="color: #000000">"</span><span style="color: #000000">B待处理任务数:</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;taskList_B.size());<br />
<img id="Codehighlighter1_1353_1458_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1353_1458_Open_Text.style.display='none'; Codehighlighter1_1353_1458_Closed_Image.style.display='inline'; Codehighlighter1_1353_1458_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1353_1458_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1353_1458_Closed_Text.style.display='none'; Codehighlighter1_1353_1458_Open_Image.style.display='inline'; Codehighlighter1_1353_1458_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(taskList_B.size()&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">)</span><span id="Codehighlighter1_1353_1458_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1353_1458_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Task&nbsp;task&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;taskList_B.get(</span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;taskService.completeTask(task.getId());<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<br />
附件是完整的集成文件和测试代码,仅在spring2.5.6测试过,要运行该部分代码,需要添加jbpm4.3和spring的相关库文件。<br />
源代码:<a title="jbpm4.3-spring" href="http://www.blogjava.net/Files/pengo/jbpm4.3-spring.2010.1.4.rar" target="_blank" closure_hashcode_p7es7z="742">jbpm4.3-spring</a><br />
<img src ="http://www.blogjava.net/paulwong/aggbug/308698.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2010-01-08 12:40 <a href="http://www.blogjava.net/paulwong/archive/2010/01/08/308698.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jbpm4整合struts2+spring2.5+hibernate3.3</title><link>http://www.blogjava.net/paulwong/archive/2009/09/07/294114.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 06 Sep 2009 16:46:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2009/09/07/294114.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/294114.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2009/09/07/294114.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/294114.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/294114.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如果不结合其他的框架进行整个开发(如:spring、hibernate),JBPM4也有自己的一套IOC容器,能后将自己的服务配置到IOC容器中,能够很容易的运行容器所配置的服务,<br>这样它也能够在代码中减少一陀一陀的工厂类等代码的调用,降低了偶核性,但是如果结合spring框架来进行整个开发的话,那么就有两个容器,两个SessionFactory,但是系统中只考虑一个容器来<br>对服务进行管理, 那么我们就要将jbpm4的服务移植到spring的IOC容器中,让spring来进行统一管理,这样通过spring的容器来管理服务、事务。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/paulwong/archive/2009/09/07/294114.html'>阅读全文</a><img src ="http://www.blogjava.net/paulwong/aggbug/294114.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2009-09-07 00:46 <a href="http://www.blogjava.net/paulwong/archive/2009/09/07/294114.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM WEB CONSOLE安装实录</title><link>http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 13 Mar 2009 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/259551.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/259551.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/259551.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: JBPM WEB CONSOLE是一个B/S端的，能管理JBPM的流程和实例。<br><br>1、下载jbpm-jpdl-3.2.3。<br><br>2、安装TOMCAT 6.0，注意，这个版本的JBPM由于使用了JSF 1.2，而5.5以下的不支持。<br><br>3、安装ANT。<br><br>4、安装MYSQL 5.0，建立JBPM表，可以ANT，或在数据库中执行SCRIPT建立。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html'>阅读全文</a><img src ="http://www.blogjava.net/paulwong/aggbug/259551.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2009-03-13 15:45 <a href="http://www.blogjava.net/paulwong/archive/2009/03/13/259551.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JBPM的双数据源配置</title><link>http://www.blogjava.net/paulwong/archive/2009/03/11/259007.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 11 Mar 2009 01:34:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2009/03/11/259007.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/259007.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2009/03/11/259007.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/259007.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/259007.html</trackback:ping><description><![CDATA[JBPM数据源和业务数据源不是同一个的时候的配置：<br />
<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;jta&nbsp;config&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;业务数据库&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="com.atomikos.jdbc.AtomikosDataSourceBean"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init-method</span><span style="color: #0000ff">="init"</span><span style="color: #ff0000">&nbsp;destroy-method</span><span style="color: #0000ff">="close"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="uniqueResourceName"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">mysql/main</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="xaDataSourceClassName"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="xaProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="URL"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jdbc.url}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="user"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jdbc.username}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="password"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jdbc.password}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="maxPoolSize"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">3</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="testQuery"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">SELECT&nbsp;1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;<br />
</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;JBPM数据库&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="dataSourceJbpm"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="com.atomikos.jdbc.AtomikosDataSourceBean"</span><span style="color: #ff0000">&nbsp;init-method</span><span style="color: #0000ff">="init"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy-method</span><span style="color: #0000ff">="close"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="uniqueResourceName"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">mysql/news</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="xaDataSourceClassName"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="xaProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="URL"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jbpm.jdbc.url}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="user"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jbpm.jdbc.username}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="password"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">${jbpm.jdbc.password}</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="maxPoolSize"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">3</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="testQuery"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">SELECT&nbsp;1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="lobHandler"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springframework.jdbc.support.lob.DefaultLobHandler"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;业务数据库的sqlMapClient&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="sqlMapClient"</span><span style="color: #ff0000">&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.ibatis.SqlMapClientFactoryBean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="configLocation"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="classpath:SqlMapConfig.xml"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="lobHandler"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="lobHandler"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Construct&nbsp;Atomikos&nbsp;UserTransactionManager,&nbsp;needed&nbsp;to&nbsp;configure&nbsp;Spring&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="atomikosTransactionManager"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="com.atomikos.icatch.jta.UserTransactionManager"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init-method</span><span style="color: #0000ff">="init"</span><span style="color: #ff0000">&nbsp;destroy-method</span><span style="color: #0000ff">="close"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;&nbsp;when&nbsp;close&nbsp;is&nbsp;called,&nbsp;should&nbsp;we&nbsp;force&nbsp;transactions&nbsp;to&nbsp;terminate&nbsp;or&nbsp;not?&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="forceShutdown"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Also&nbsp;use&nbsp;Atomikos&nbsp;UserTransactionImp,&nbsp;needed&nbsp;to&nbsp;configure&nbsp;Spring&nbsp;&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="atomikosUserTransaction"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="com.atomikos.icatch.jta.UserTransactionImp"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="transactionTimeout"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="300"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;Configure&nbsp;the&nbsp;Spring&nbsp;framework&nbsp;to&nbsp;use&nbsp;JTA&nbsp;transactions&nbsp;from&nbsp;Atomikos&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springframework.transaction.jta.JtaTransactionManager"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="atomikosTransactionManager"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="userTransaction"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="atomikosUserTransaction"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:advice&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="txAdvice"</span><span style="color: #ff0000">&nbsp;transaction-manager</span><span style="color: #0000ff">="transactionManager"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:method&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="find*"</span><span style="color: #ff0000">&nbsp;propagation</span><span style="color: #0000ff">="REQUIRED"</span><span style="color: #ff0000">&nbsp;read-only</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;rollback-for</span><span style="color: #0000ff">="ServiceException"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:method&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="get*"</span><span style="color: #ff0000">&nbsp;propagation</span><span style="color: #0000ff">="REQUIRED"</span><span style="color: #ff0000">&nbsp;read-only</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;rollback-for</span><span style="color: #0000ff">="ServiceException"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:method&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="list*"</span><span style="color: #ff0000">&nbsp;propagation</span><span style="color: #0000ff">="REQUIRED"</span><span style="color: #ff0000">&nbsp;read-only</span><span style="color: #0000ff">="true"</span><span style="color: #ff0000">&nbsp;rollback-for</span><span style="color: #0000ff">="ServiceException"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">tx:method&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="*"</span><span style="color: #ff0000">&nbsp;propagation</span><span style="color: #0000ff">="REQUIRED"</span><span style="color: #ff0000">&nbsp;rollback-for</span><span style="color: #0000ff">="ServiceException"</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;:attributes</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;:advice</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">aop:config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">aop:advisor&nbsp;</span><span style="color: #ff0000">pointcut</span><span style="color: #0000ff">="execution(*&nbsp;com.service.impl.*.*(..))"</span><span style="color: #ff0000">&nbsp;advice-ref</span><span style="color: #0000ff">="txAdvice"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">aop:config</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;JBPM集成配置&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="sessionFactoryForJbpm"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springframework.orm.hibernate3.LocalSessionFactoryBean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="mappingJarLocations"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">list</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;hibernate&nbsp;映射文件所在的jar包路径&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">WEB-INF&nbsp;b/jbpm-jpdl.jar</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">alue</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">&nbsp;st</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="hibernateProperties"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="hibernate.dialect"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.hibernate.dialect.MySQL5Dialect<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="hibernate.show_sql"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">true</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">prop&nbsp;</span><span style="color: #ff0000">key</span><span style="color: #0000ff">="hibernate.cache.provider_class"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">org.hibernate.cache.HashtableCacheProvider</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">prop</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">props</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">property</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="dataSource"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="dataSourceJbpm"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="jbpmConfiguration"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="sessionFactory"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="sessionFactoryForJbpm"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;jbpm.cfg.xml&nbsp;配置JBPM的参数，如邮件服务器地址等,保持默认即可</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="configuration"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="classpath:jbpm.cfg.xml"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">property&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="createSchema"</span><span style="color: #ff0000">&nbsp;value</span><span style="color: #0000ff">="false"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">bean&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="jbpmTemplate"</span><span style="color: #ff0000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class</span><span style="color: #0000ff">="com.ideal.common.util.JbpmUtils"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">constructor-arg&nbsp;</span><span style="color: #ff0000">index</span><span style="color: #0000ff">="0"</span><span style="color: #ff0000">&nbsp;ref</span><span style="color: #0000ff">="jbpmConfiguration"</span><span style="color: #ff0000">&nbsp;</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">bean</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">&nbsp;END&nbsp;OF&nbsp;JBPM集成配置&nbsp;</span><span style="color: #008000">--&gt;</span><span style="color: #000000">&nbsp;</span></div>
<img src ="http://www.blogjava.net/paulwong/aggbug/259007.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2009-03-11 09:34 <a href="http://www.blogjava.net/paulwong/archive/2009/03/11/259007.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>