forked from henryyan/henryyan.github.com
-
Notifications
You must be signed in to change notification settings - Fork 0
/
activiti-in-action.html
528 lines (501 loc) · 19.1 KB
/
activiti-in-action.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
---
layout: master
title: 《Activiti实战》闫洪磊著 - 国内权威Activiti中文书籍
---
<style type="text/css">
.book-index li {
display: inline;
padding: 1em;
}
</style>
<table>
<tr>
<td width="220"><a href="http://www.activiti.org" target="_blank"><img src="/images/activiti_logo.png" alt="Activiti" /></a></td>
<td style="font-size: 18pt; color: #56BA49">优秀的开源流程引擎(BPM平台)</td>
</tr>
</table>
<div>
<div style="float:left; width: 55%">
<p>
工作流在每一个需要流程处理的系统中不可或缺,符合BPMN2.0规范且开源的流程引擎(或平台)才是每个公司需要的,结合长期以来(从jBPM4停止更新)开源流程引擎的使用上可以分为Activiti和jBPM5,前者是jBPM作者Tom的又一力作,而jBMP5则是基于Drools Flow的产物。从设计思想、源码开放、技术支持以及社区的活跃度几点对比很明显Activiti优于jBPM5,另外本书中强调过很多次的一句话:“<strong>Activiti不仅仅是一个引擎,它还是一个流程平台</strong>”;Activiti可以轻松驱动你的业务流程、搭建统一的流程平台。
</p>
<p>
哦,对了,国内还有几千人技术社区作为你的技术后盾。
</p>
<p>
国内Activiti领域第一人(最权威专家和布道师)撰写,Activiti项目负责人Tijs Rademakers高度认可并推荐;根据Activiti最新版本系统、深度讲解了BPM2.0规范,以及Activiti功能、用法、技巧、最佳实践和源代码分析。
</p>
<hr>
<ul class="book-index" style="font-size:14pt;margin-top:2em;">
<li><a href="#praise">赞誉</a></li>
<li><a href="#toc">目录</a></li>
<li><a href="#codes">源码</a></li>
<li><a href="#errata">勘误</a></li>
<li><a href="#comments">评论</a></li>
<li><a href="http://book.douban.com/subject/26287219">豆瓣</a></li>
</ul>
<hr>
<p style="margin-top:2em;margin-bottom:2em;">
去 <a href="http://product.china-pub.com/3770832" style="font-size:17pt;color:red">China-Pub</a>
| <a href="http://item.jd.com/11599588.html" style="font-size:17pt;color:red">京东</a>
| <a href="http://product.dangdang.com/23622065.html" style="font-size:17pt;color:red">当当网</a>
| <a href="http://www.amazon.cn/Activiti%E5%AE%9E%E6%88%98-%E9%97%AB%E6%B4%AA%E7%A3%8A/dp/B00RRCOYAQ/ref=sr_1_4?ie=UTF8&qid=1420773978&sr=8-4&keywords=activiti" style="font-size:17pt;color:red">亚马逊</a>
购买
</p>
</div>
<div style="float:right; width: 45%">
<div>
<img src="/images/activiti-in-action.jpg" width="100%">
</div>
</div>
</div>
<h2 id="praise">赞誉</h2>
<div>
<em style="font-size: 13pt;">Henry Yan has been a longtime valued contributor to the Activiti project, both for his commits and for promoting Activiti in China through his community and blog site (<a href="http://www.kafeitu.me/activiti.html">http://www.kafeitu.me/activiti.html</a>).
It’s great to see his Activiti book as it brings a lot of value for Activiti users and developers in China. With Henry Yan’s background in the Activiti project I highly recommend this book for new Activiti users as well as developers already using Activiti.</em>
<p>
<a href="http://bpmn20inaction.blogspot.com" style="font-size:15pt;">Tijs Rademakers</a><br/>
现任Activiti项目负责人,《Activiti in Action》作者 (Manning)
</p>
<hr>
<em style="font-size: 13pt;">
咖啡兔同学的《Activiti实战》终于出炉,欣喜之情溢于言表。国内的工作流行业虽然产品繁多,但是开源一直为Activiti和jBPM垄断。相对来说Activiti延续了一贯方便灵活的特性,又不会在功能上有半分折损,在国内拥有大量的粉丝。咖啡兔同学此前一直致力于Activiti在国内的推广与传播,先后开辟了专栏博客、Activiti论坛网站、QQ群组,并积极参与Activiti的官方开发,可以说Activiti在国内能达到当前的认知程度,他是功不可没的。可惜,国内尚缺一本可以为Activiti新手答疑解惑,带初阶者更上一层楼的实体书籍。我觉得,这个任务由一直积极活跃于Activiti开源社区,既拥有实际流程项目设计研发经验,又为Activiti官方内核提交过代码的人是再合适不过了。
全书由浅入深地引导读者进入工作流的殿堂,不仅覆盖常见的流程功能与实现方法,还专门提供了作者实践中总结的经验方法,因此本书必将成为学习流程道路上的得力助手。
</em>
<p>
<a href="http://" style="font-size:15pt;">徐会生(临远)</a><br/>
jBPM、Activiti国内推广者,《深入浅出Ext》(一、二、三版)作者
</p>
</div>
<h2 id="codes">源码</h2>
<div>
别问我为什么没有附带光盘,看看现在笔记本还有没有光驱?<br/>
<ul>
<li>Github -> <a href="https://github.com/henryyan/activiti-in-action-codes" target="_blank">https://github.com/henryyan/activiti-in-action-codes</a> </li>
<li>开源中国 -> <a href="http://git.oschina.net/yanhonglei/activiti-in-action-codes" target="_blank">http://git.oschina.net/yanhonglei/activiti-in-action-codes</a> </li>
</ul>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="http://www.oschina.net/js/jquery/jquery.githubRepoWidget.js" type="text/javascript"></script>
<div class="github-widget" data-repo="henryyan/activiti-in-action-codes"></div>
<hr style="margin-top:.5em;margin-bottom:.5em;"/>
<script src='http://git.oschina.net/yanhonglei/activiti-in-action-codes/widget_preview'></script>
<style> .pro_name a{color: #4183c4;} .osc_git_title{background-color: #d8e5f1;} .osc_git_box{background-color: #fafafa;} .osc_git_box{border-color: #ddd;} .osc_git_info{color: #666;} .osc_git_main a{color: #4183c4;} </style>
</div>
<h2 id="errata">勘误</h2>
<div>
<ul>
<li><strong>本书推荐</strong>:第二行的“前言”改为“前沿”</li>
<li><strong>P3</strong>:BMP改为“BPM”</li>
<li><strong>P6</strong>:表1-1的第3行『IdnetifyService』改为『IdentityService』</li>
<li><strong>P22</strong>:代码清单2-4的#1-S处userTask的“id”属性值改为“deptLeaderAudit”</li>
<li><strong>P67第一行</strong>:所有的开始事件均改为『结束事件』</li>
<li><strong>P82</strong>:第4.3.12节地4行改为:添加了3个平行线(顺序执行)和3个垂直线(并行执行)</li>
<li><strong>P122最后一行</strong>:“cadidate”改为“candidate”;感谢@south</li>
<li><strong>P123第一行</strong>:“cadidate”改为“candidate”;感谢@south</li>
<li><strong>P147</strong>表格中第二个readable改为“required”</li>
</ul>
</div>
<h2 id="toc">目录</h2>
<div>
<h3>第一部分 准备篇</h3>
<fieldset><legend>第1章 认识Activiti</legend>
<ul>
<li>1.1 什么是Activiti</li>
<li>1.2 工作流基础</li>
<li>1.2.1 什么是BPM</li>
<li>1.2.2 BPM生命周期</li>
<li>1.2.3 什么是BPMN</li>
<li>1.3 Activiti的特点</li>
<li>1.4 Activiti的应用</li>
<li>1. 在系统集成方面应用</li>
2. 在其他产品中应用
<li>1.5 Activiti架构与组件</li>
<li>1.6 Activiti与jBPM5比较</li>
<li>1.7 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第2章 搭建Activiti开发环境</legend>
<ul>
<li>2.1 下载Activiti</li>
<li>2.1.1 目录结构</li>
<li>2.1.2 Javadoc</li>
<li>2.2 环境配置检查</li>
<li>2.2.1 检查并安装JDK</li>
<li>2.2.2 检查并安装Ant</li>
<li>2.2.3 检查并安装Maven</li>
<li>2.3 配置文件介绍</li>
<li>2.3.1 Activiti配置文件</li>
<li>2.3.2 Maven配置文件</li>
<li>2.4 Hello World</li>
<li>2.4.1 最简单的流程定义</li>
<li>2.4.2 创建单元测试类</li>
<li>2.4.3 运行Hello World</li>
<li>2.4.4 添加业务节点</li>
<li>2.5 Activiti Explorer</li>
<li>2.5.1 配置并运行Activiti Explorer</li>
<li>2.5.2 使用Activiti Explorer</li>
<li>2.6 本章小结</li>
</ul>
</fieldset>
<h3>第二部分 基础篇</h3>
<fieldset><legend>第3章 流程设计工具</legend>
<ul>
<li>3.1 基于B/S架构的流程设计器Activiti Modeler</li>
<li>3.1.1 Activiti Modeler特点</li>
<li>3.1.2 下载Signavio-core-components</li>
<li>3.1.3 配置打包与运行</li>
<li>3.1.4 打包Windows用户</li>
<li>3.1.5 设计请假流程</li>
<li>3.1.6 导出bpmn2.0.xml</li>
<li>3.2 在Activiti Explorer中使用Activiti Modeler</li>
<li>3.3 基于Eclipse插件的流程设计器Activiti Designer</li>
<li>3.3.1 Acvititi Designer特点</li>
<li>3.3.2 安装Activiti Designer</li>
<li>3.3.3 设计流程</li>
<li>3.3.4 自动化</li>
<li>3.3.5 升级历史遗留的流程设计</li>
<li>3.3.6 导入Activiti Modeler设计</li>
<li>3.3.7 泳池与泳道</li>
<li>3.3.8 在Activiti Designer中使用泳道与泳池</li>
<li>3.4 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第4章 Activiti与BPMN2.0规范</legend>
<ul>
<li>4.1. 启动事件与结束事件</li>
<li>4.1.1. 启动事件</li>
<li>4.1.2. 结束事件</li>
<li>4.2. 顺序流</li>
<li>4.2.1. 标准顺序流</li>
<li>4.2.2. 条件顺序流</li>
<li>4.3. 任务</li>
<li>4.3.1. 用户任务</li>
<li>4.3.2. 脚本任务</li>
<li>4.3.3. Java Service任务</li>
<li>4.3.4. Web Service任务</li>
<li>4.3.5. 业务规则任务</li>
<li>4.3.6. 邮件任务</li>
<li>4.3.7. Camel任务</li>
<li>4.3.8. Mule任务</li>
<li>4.3.9. 手动任务</li>
<li>4.3.10. 接收任务</li>
<li>4.3.11. Shell任务</li>
<li>4.3.12. 多实例</li>
<li>4.4. 网关</li>
<li>4.4.1. 排他网关</li>
<li>4.4.2. 并行网关</li>
<li>4.4.3. 包容网关</li>
<li>4.4.4. 事件网关</li>
<li>4.5. 子流程与调用活动</li>
<li>4.5.1. 子流程</li>
<li>4.5.2. 调用活动</li>
<li>4.5.3. 事件子流程</li>
<li>4.5.4. 事务子流程</li>
<li>4.6. 边界与中间事件</li>
<li>4.6.1. 边界事件</li>
<li>4.6.2. 中间捕获事件</li>
<li>4.6.3. 中间抛出事件</li>
<li>4.7. 监听器</li>
<li>4.7.1. 执行监听器</li>
<li>4.7.2. 任务监听器</li>
<li>4.8. 本章小结</li>
</ul>
</fieldset>
### 第三部分 实战篇
<fieldset><legend>第5章 用户与组及部署管理</legend>
<ul>
<li>5.1. 用户与组</li>
<li>5.1.1. 用户</li>
<li>5.1.2. 组</li>
<li>5.1.3. 用户与组的关系</li>
<li>5.1.4. 用户任务中的用户与组</li>
<li>5.2. 部署流程资源</li>
<li>5.2.1. classpath方式</li>
<li>5.2.2. InputStream方式</li>
<li>5.2.3. 字符串方式</li>
<li>5.2.4. Zip/Bar格式压缩包方式</li>
<li>5.3. 流程部署及资源读取</li>
<li>5.3.1. 读取已部署流程定义</li>
<li>5.3.2. 从客户端部署流程</li>
<li>5.3.3. 读取流程定义的XML</li>
<li>5.3.4. 读取流程定义的图片及图片中的中文乱码</li>
<li>5.3.5. 删除部署</li>
<li>5.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第6章 任务表单</legend>
<ul>
<li>6.1. 动态表单</li>
<li>6.1.1. 流程定义</li>
<li>6.1.2. 单元测试</li>
<li>6.1.3. 在Activiti Explorer中运行流程</li>
<li>6.2. 实现自己的Activiti Explorer</li>
<li>6.2.1. 完善身份验证功能</li>
<li>6.2.2. 流程启动表单</li>
<li>6.2.3. 任务签收与办理</li>
<li>6.2.4. 自定义表单的字段类型</li>
<li>6.3. 外置表单</li>
<li>6.3.1. 流程定义</li>
<li>6.3.2. 单元测试</li>
<li>6.3.3. 自定义表单引擎</li>
<li>6.3.4. 读取流程启动表单</li>
<li>6.3.5. 任务签收与办理</li>
<li>6.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第7章 Activiti与容器集成</legend>
<ul>
<li>7.1. 流程引擎工厂</li>
<li>7.1.1. 创建引擎的方式</li>
<li>7.1.2. 配置 ProcessEngineFactoryBean</li>
<li>7.2. 自动部署流程定义</li>
<li>7.3. 表达式</li>
<li>7.3.1. 表达式基础</li>
<li>7.3.2. 表达式示例</li>
<li>7.3.3. 使用Spring管理变量</li>
<li>7.4. 监听器</li>
<li>7.5. Spring容器集成应用实例</li>
<li>7.5.1. 业务建模</li>
<li>7.5.2. 启动流程</li>
<li>7.5.3. 任务读取</li>
<li>7.5.4. 任务办理</li>
<li>7.6. 使用Spring注解初始化引擎</li>
<li>7.6.1. 使用@EnableActiviti注解</li>
<li>7.6.2. 使用Spring Boot初始化引擎</li>
<li>7.7. CDI模块</li>
<li>7.7.1. 启动示例</li>
<li>7.7.2. 引擎配置与流程定义</li>
<li>7.7.3. 流程定义与启动</li>
<li>7.7.4. 任务办理与完成</li>
<li>7.7.5. 事件监听</li>
<li>7.8. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第8章 邮件服务</legend>
<ul>
<li>8.1. 配置与测试</li>
<li>8.1.1. 搭建邮件系统</li>
<li>8.1.2. 通过Activiti的邮件任务发送邮件</li>
<li>8.1.3. 使用Gmail发送邮件</li>
<li>8.2. 与业务集成</li>
<li>8.2.1. 即时发送邮件</li>
<li>8.2.2. 定时发送邮件</li>
<li>8.3. 本章小节</li>
</ul>
</fieldset>
<fieldset><legend>第9章 多实例</legend>
<ul>
<li>9.1. 非用户任务</li>
<li>9.2. 用户任务多实例</li>
<li>9.2.1. 顺序方式办理</li>
<li>9.2.2. 并行方式办理</li>
<li>9.2.3. 设置结束条件</li>
<li>9.3. 应用实例—请假会签</li>
<li>9.3.1. 流程定义</li>
<li>9.3.2. 任务办理</li>
<li>9.4. 审批意见</li>
<li>9.5. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第10章 子流程与调用活动</legend>
<ul>
<li>10.1. 子流程</li>
<li>10.1.1. 流程定义</li>
<li>10.1.2. 流程办理</li>
<li>10.1.3. 分析流程数据</li>
<li>10.2. 调用活动</li>
<li>10.2.1. 流程定义</li>
<li>10.2.2. 单元测试</li>
<li>10.2.3. 流程办理</li>
<li>10.2.4. 分析流程数据</li>
<li>10.3. 事件子流程</li>
<li>10.3.1. 流程定义</li>
<li>10.3.2. 单元测试</li>
<li>10.4. 多实例支持</li>
<li>10.5. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第11章 事件</legend>
<ul>
<li>11.1 启动事件</li>
<li>11.1.1 定时启动事件</li>
<li>11.1.2 消息启动事件</li>
<li>11.2 结束事件</li>
<li>11.2.1 终止结束事件</li>
<li>11.2.2 消息结束事件</li>
<li>11.3 边界事件</li>
<li>11.3.1 异常边界事件</li>
<li>11.3.2 消息边界事件</li>
<li>11.3.3 信号边界事件</li>
<li>11.4 中间事件</li>
<li>11.5 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第12章 用户任务与附件</legend>
<ul>
<li>12.1. 用户任务</li>
<li>12.1.1 改进任务列表</li>
<li>12.1.2 改进任务表单</li>
<li>12.1.3 任务相关人员</li>
<li>12.1.4 反签收任务</li>
<li>12.1.5 候选人与候选组</li>
<li>12.1.6 改进任务查询</li>
<li>12.2. 子任务</li>
<li>12.3. 手动任务</li>
<li>12.4. 附件</li>
<li>12.5. 改进意见列表</li>
<li>12.6. 任务委派</li>
<li>12.6.1 单元测试</li>
<li>12.6.2 任务表单中的委派</li>
<li>12.7. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第13章 流程数据查询与跟踪</legend>
<ul>
<li>13.1. Query API简介</li>
<li>13.2. 运行时数据查询</li>
<li>13.2.1. 任务查询</li>
<li>13.2.2. 查询参与的流程</li>
<li>13.3. 流程跟踪</li>
<li>13.4. 历史数据查询</li>
<li>13.4.1. 历史活动及表单查询</li>
<li>13.4.2. 已结束流程</li>
<li>13.5. 使用MyBatis查询Map集合</li>
<li>13.6. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第14章 管理员特性</legend>
<ul>
<li>14.1. 流程状态</li>
<li>14.1.1 流程定义状态</li>
<li>14.1.2 作业查询</li>
<li>14.1.3 流程实例状态</li>
<li>14.2. 作业管理</li>
<li>14.2.1 作业执行原理</li>
<li>14.2.2 作业执行异常</li>
<li>14.2.3 独占与异步</li>
<li>14.3. 删除流程实例</li>
<li>14.4. 流程定义权限控制</li>
<li>14.4.1 权限拦截</li>
<li>14.4.2 设置候选启动人和候选启动组</li>
<li>14.4.3 读取候选启动数据</li>
<li>14.5. 读取引擎属性</li>
<li>14.6. 数据库查询</li>
<li>14.7. 用户与组</li>
<li>14.8. 本章小结</li>
</ul>
</fieldset>
<h3>第四部分 高级篇</h3>
<fieldset><legend>第15章 集成WebService</legend>
<ul>
<li>15.1. 发布WebService服务</li>
<li>15.2. 在流程中定义WebService任务</li>
<li>15.3. 在流程中调用WebService</li>
<li>15.4. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第16章 集成规则引擎</legend>
<ul>
<li>16.1. 定义流程与规则</li>
<li>16.1.1. 部署规则文件</li>
<li>16.1.2. 单元测试</li>
<li>16.2. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第17章 集成JPA</legend>
<ul>
<li>17.1. 配置JPA</li>
<li>17.1.1 Standalone模式</li>
<li>17.1.2 Spring模式</li>
<li>17.2. JPA版本的请假流程</li>
<li>17.2.1 启动流程时持久化JPA实体</li>
<li>17.2.2 更改JPA实体属性</li>
<li>17.2.3 清理历史表单数据</li>
<li>17.3. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第18章 整合ESB</legend>
<ul>
<li>18.1 Camel简介</li>
<li>18.2 Camel快速进阶</li>
<li>18.3 Hello World</li>
<li>18.4 添加Camel依赖</li>
<li>18.5 与业务的结合</li>
<li>18.5.1 设计流程定义</li>
<li>18.5.2 定义Camel Flow</li>
<li>18.5.3 启动Camel Flow</li>
<li>18.5.4 单元测试</li>
<li>18.6 ESB简介</li>
<li>18.7 Mule快速进阶</li>
<li>18.8 Hello World</li>
<li>18.9 添加Mule依赖</li>
<li>18.10 与业务的结合</li>
<li>18.10.1 设计流程定义</li>
<li>18.10.2 定义Mule Flow</li>
<li>18.10.3 启动Mule Flow</li>
<li>18.10.4 单元测试</li>
<li>18.11 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第19章 统一身份管理</legend>
<ul>
<li>19.1. 一套典型的身份系统</li>
<li>19.2. 通过引擎接口同步数据</li>
<li>19.2.1 通过引擎接口同步数据</li>
<li>19.2.2 自定义Session工厂方式</li>
<li>19.3. 用视图代替物理表</li>
<li>19.4. 集成LDAP</li>
<li>19.5. 本章小节</li>
</ul>
</fieldset>
<fieldset><legend>第20章 REST API</legend>
<ul>
<li>20.1. 通信协议简介</li>
<li>20.2. REST API概述</li>
<li>20.2.1. REST API认证机制</li>
<li>20.3. 发布REST API</li>
<li>20.3.1. 通过浏览器访问</li>
<li>20.3.2. 通过Http Client访问</li>
<li>20.3.3. 通过Restlet访问</li>
<li>20.3.4. 通过Apache CXF访问</li>
<li>20.4. 集成REST API</li>
<li>20.4.1. 依赖及配置文件</li>
<li>20.4.2. 通过Ajax访问</li>
<li>20.5. 完整示例</li>
<li>20.5.1. 部署流程</li>
<li>20.5.2. 查询Deployment</li>
<li>20.5.3. 查询流程定义</li>
<li>20.5.4. 启动流程</li>
<li>20.5.5. 读取流程变量</li>
<li>20.5.6. 查询任务</li>
<li>20.5.7. 签收任务</li>
<li>20.5.8. 完成任务</li>
<li>20.5.9. 查询历史数据</li>
<li>20.6. 本章小结</li>
</ul>
</fieldset>
<fieldset><legend>第21章 入侵Activiti</legend>
<ul>
<li>21.1 解析BPMN文件</li>
<li>21.1.1. BpmnModel对象与XML之间的转换</li>
<li>21.1.2. 动态创建流程</li>
<li>21.1.3. BPMN解析处理器</li>
<li>21.2 全局事件处理器</li>
<li>21.2.1. 定义事件处理器</li>
<li>21.2.2. 处理捕获的事件</li>
<li>21.2.3. 事件处理器的异常处理</li>
<li>21.2.4. 动态注册事件处理器</li>
<li>21.2.5. 任务自动转办</li>
<li>21.3 命令与拦截器</li>
<li>21.3.1. 命令与拦截器运行机制</li>
<li>21.3.2. 自定义命令</li>
<li>21.3.3. 命令拦截器</li>
<li>21.4 流程虚拟机—PVM</li>
<li>21.4.1. 简述PVM</li>
<li>21.4.2. Hello PVM</li>
<li>21.4.3. PVM进阶</li>
<li>21.5 本章小结</li>
</ul>
</fieldset>
</div>
<div id="comments"></div>