开始的前
IBM® WebSphere Process Server 提供了
![](/icons/65312yi.gif)
些区别
![](/icons/65312de.gif)
接口来访问业务模块
![](/icons/65312dou.gif)
比如基于 HTTP 或 JMS
![](/icons/65312de.gif)
Web 服务和服务组件架构(SCA)绑定
![](/icons/65312dou2.gif)
为了帮助您利用自己
![](/icons/65312de.gif)
业务模块
![](/icons/65312dou.gif)
本教程将介绍
![](/icons/65312yi.gif)
种将 REST 协议应用于模块接口
![](/icons/65312de.gif)
思路方法
![](/icons/65312dou2.gif)
目标
为支持 RESTful 请求
![](/icons/65312de.gif)
WebSphere Process Server 业务模块创建
![](/icons/65312yi.gif)
个 HTTP 接口
![](/icons/65312dou2.gif)
为举例场景创建
![](/icons/65312yi.gif)
个业务对象
![](/icons/65312dou2.gif)
为举例场景创建
![](/icons/65312yi.gif)
个业务模块
![](/icons/65312dou2.gif)
为举例场景创建并填充
![](/icons/65312yi.gif)
个数据库
![](/icons/65312dou2.gif)
使用普通 Web 浏览器测试您
![](/icons/65312de.gif)
应用
![](/icons/65312chengxu.gif)
![](/icons/65312dou2.gif)
先决条件
尽管本文提供了实现举例场景
![](/icons/65312de.gif)
分步指导
![](/icons/65312dou.gif)
但是有关 WebSphere Integration Developer 和 WebSphere Process Server
![](/icons/65312de.gif)
基础知识会非常有帮助
![](/icons/65312dou2.gif)
本文提供了必要
![](/icons/65312de.gif)
Java™ 编程内容
![](/icons/65312dou.gif)
因此您不需要具备 Java 编程技能
![](/icons/65312dou2.gif)
系统需求
本教程需要使用 WebSphere Integration Developer 版本 6.1 以及 WebSphere Process Server 测试环境版本 6.1
![](/icons/65312dou2.gif)
可以使用这些产品所支持
![](/icons/65312de.gif)
任何平台
![](/icons/65312dou2.gif)
然后
![](/icons/65312dou.gif)
需要使用
![](/icons/65312yi.gif)
个 Web 浏览器(例如 Firefox、Internet Explorer)来测试 RESTful 接口
![](/icons/65312dou.gif)
但是也可以使用任何可发出 HTTP 请求
![](/icons/65312de.gif)
工具
![](/icons/65312dou2.gif)
持续时间
完成本教程需要大约 2 个小时
![](/icons/65312dou2.gif)
什么是 REST?
代表性状态传输(Representational State Transfer
![](/icons/65312dou.gif)
REST)是
![](/icons/65312yi.gif)
种通过 URL 访问 Web 资源
![](/icons/65312de.gif)
轻量级思路方法
![](/icons/65312dou2.gif)
它利用了 4 种标准
![](/icons/65312de.gif)
HTTP 请求思路方法(GET、POST、PUT 和 DELETE)对 Web 应用
![](/icons/65312chengxu.gif)
![](/icons/65312diaoyong.gif)
操作
![](/icons/65312dou2.gif)
这意味着同
![](/icons/65312yi.gif)
个 URL 可能会导致区别
![](/icons/65312de.gif)
应用
![](/icons/65312chengxu.gif)
行为
![](/icons/65312dou2.gif)
例如
![](/icons/65312dou.gif)
如果 URL 为 http://myhost.mydo
![](/icons/65312main.gif)
.com/BookApp/rest/book/100010
![](/icons/65312dou.gif)
那么对于
![](/icons/65312yi.gif)
个 HTTP GET 请求它将检索 ID 为 100010
![](/icons/65312de.gif)
图书
![](/icons/65312de.gif)
数据
![](/icons/65312dou.gif)
但是如果请求思路方法为 HTTP DELETE
![](/icons/65312dou.gif)
那么它将删除这本图书
![](/icons/65312dou2.gif)
通过这种方式
![](/icons/65312dou.gif)
就可以获得
![](/icons/65312yi.gif)
种简单、轻量级
![](/icons/65312de.gif)
思路方法来控制 Web 应用
![](/icons/65312chengxu.gif)
![](/icons/65312de.gif)
操作
![](/icons/65312dou.gif)
![](/icons/65312yinwei.gif)
它不需要了解应用
![](/icons/65312chengxu.gif)
在服务器端
![](/icons/65312de.gif)
知识
![](/icons/65312dou2.gif)
这里使用了 “轻量级”
![](/icons/65312yi.gif)
词
![](/icons/65312dou.gif)
![](/icons/65312yinwei.gif)
和 HTTP SOAP 请求相比
![](/icons/65312dou.gif)
只有很少
![](/icons/65312de.gif)
数据被发送给应用服务器
可以使用多种思路方法为 Web 模块实现 RESTful 接口
![](/icons/65312dou.gif)
例如 RESTlet 框架
![](/icons/65312dou.gif)
或仅仅是
![](/icons/65312yi.gif)
个可以截获请求
![](/icons/65312de.gif)
简单 servlet 或 servlet 过滤器
![](/icons/65312dou2.gif)
然而
![](/icons/65312dou.gif)
本教程将展示 WebSphere Integration Developer(简称为 Integration Developer)中
![](/icons/65312de.gif)
![](/icons/65312yi.gif)
种标准工具如何利用新
![](/icons/65312de.gif)
HTTP 绑定实现
![](/icons/65312yi.gif)
个 RESTful 接口
HTTP 绑定
HTTP 绑定特性在 WebSphere Integration Developer 和 WebSphere Process Server 版本 6.1 中引入
![](/icons/65312dou2.gif)
这个绑定使用常用
![](/icons/65312de.gif)
HTTP 数据传输协议
![](/icons/65312dou2.gif)
它允许访问原始
![](/icons/65312de.gif)
HTTP 请求
![](/icons/65312dou2.gif)
HTTP 绑定由 Web 服务绑定演化而来
![](/icons/65312dou.gif)
![](/icons/65312yinwei.gif)
尽管 SOAP/HTTP Web 服务绑定非常流行、非常健壮
![](/icons/65312dou.gif)
但是人们需要
![](/icons/65312yi.gif)
种更加轻量级
![](/icons/65312de.gif)
思路方法
绑定
![](/icons/65312de.gif)
行为由两种区别
![](/icons/65312de.gif)
类确定:
![](/icons/65312hanshu.gif)
选择器
数据绑定
WebSphere Process Server(此后称为 Process Server)以开箱即用
![](/icons/65312de.gif)
方式附带了两个预定义
![](/icons/65312de.gif)
![](/icons/65312hanshu.gif)
选择器实现和 3个预定义
![](/icons/65312de.gif)
数据绑定
基于 TargetFunctionName 头部(header)
![](/icons/65312de.gif)
HTTP
![](/icons/65312hanshu.gif)
选择器
基于 URL 和 HTTP 思路方法
![](/icons/65312de.gif)
HTTP
![](/icons/65312hanshu.gif)
选择器
HTTP 字节消息数据绑定
HTTP SOAP 消息数据绑定
HTTP XML 消息数据绑定
![](/icons/65312hanshu.gif)
选择器将决定
![](/icons/65312yi.gif)
个传入
![](/icons/65312de.gif)
请求是否映射到接口思路方法
![](/icons/65312dou2.gif)
实现类将查看请求数据
![](/icons/65312dou.gif)
从而可以决定为请求提供服务并根据
![](/icons/65312yi.gif)
些条件
![](/icons/65312dou.gif)
比如 URL、思路方法类型或头部信息
![](/icons/65312dou.gif)
将请求传递给相应
![](/icons/65312de.gif)
接口
![](/icons/65312yi.gif)
旦服务接受了请求
![](/icons/65312dou.gif)
将相应地处理请求负荷
![](/icons/65312dou2.gif)
实现 HTTP 数据处理
![](/icons/65312de.gif)
类将实现 HTTPStreamDataBinding 接口
![](/icons/65312dou2.gif)
该接口定义了思路方法 “getDataObject
![](/icons/65312kh.gif)
”
![](/icons/65312dou.gif)
这意味着该类将实现所有必需
![](/icons/65312de.gif)
逻辑
![](/icons/65312dou.gif)
将请求负载转换为 Export 接口定义
![](/icons/65312de.gif)
数据对象
实现
![](/icons/65312yi.gif)
个 RESTful GET 操作
本例中使用
![](/icons/65312de.gif)
业务模块是
![](/icons/65312yi.gif)
个简单
![](/icons/65312de.gif)
应用
![](/icons/65312chengxu.gif)
![](/icons/65312dou.gif)
可以根据 HTTP URL 中指定
![](/icons/65312de.gif)
ISBN 书号从数据库中检索某本书
![](/icons/65312de.gif)
信息
![](/icons/65312dou.gif)
如图 1 所示
![](/icons/65312dou2.gif)
图 1. 样例场景
![](http://www.crazycoder.cn/WebFiles/20099/dd2d3b48-247a-415e-8c8c-470584f0882f.jpeg)
这个数据库通过 WebSphere JDBC Resource Adapter 访问
![](/icons/65312dou2.gif)
接下来
![](/icons/65312dou.gif)
模块将使用
![](/icons/65312yi.gif)
个 Web 服务导出来测试它
![](/icons/65312de.gif)
基本功能
![](/icons/65312dou2.gif)
![](/icons/65312yi.gif)
旦将模块用于获取数据
![](/icons/65312dou.gif)
那么
![](/icons/65312yi.gif)
个 RESTful 导出将被添加到模块中
![](/icons/65312dou2.gif)
再
![](/icons/65312yi.gif)
次
![](/icons/65312dou.gif)
为了保持简单性
![](/icons/65312dou.gif)
我们将只遍历 RESTful GET 请求
![](/icons/65312de.gif)
实现
![](/icons/65312dou.gif)
但是其他 RESTful CRUD 操作也是可行
![](/icons/65312de.gif)
![](/icons/65312dou2.gif)
设置环境
创建数据库
假设您已经有了
![](/icons/65312yi.gif)
个数据库例子
![](/icons/65312dou.gif)
比如
![](/icons/65312yi.gif)
个 DB2® 例子
![](/icons/65312dou.gif)
可以创建
![](/icons/65312yi.gif)
个仅包含
![](/icons/65312yi.gif)
个表
![](/icons/65312de.gif)
举例 Books 数据库(为保持简单性)
![](/icons/65312dou2.gif)
假设某本书具有
![](/icons/65312yi.gif)
个惟
![](/icons/65312yi.gif)
![](/icons/65312de.gif)
编号(ISBN 编号)、
![](/icons/65312yi.gif)
个标题和
![](/icons/65312yi.gif)
个作者
![](/icons/65312dou2.gif)
脚本将创建 “Books” 表并填充
![](/icons/65312yi.gif)
些样例数据
![](/icons/65312dou.gif)
如清单 1 所示
清单 1. Books.sql
CREATE TABLE Books (
isbn BIGINT NOT NULL PRIMARY KEY,
title VARCHAR(30),
author VARCHAR(20)
);
INSERT INTO Books (isbn, title, author)
VALUES (100010, 'Parry Hotter', 'D.J. Howling');
INSERT INTO Books (isbn, title, author)
VALUES (100020, 'I Win', 'U. Lose');
INSERT INTO Books (isbn, title, author)
VALUES (100030, 'Its Unfair!', 'Y. Me');
INSERT INTO Books (isbn, title, author)
VALUES (100040, 'Happy New Year!', 'Mary Christmas');
INSERT INTO Books (isbn, title, author)
VALUES (100050, 'Shocking facts of l
e', 'Alec Tricity');
用于创建数据库
![](/icons/65312de.gif)
命令为:
db2 create db BOOKDB using code
UTF8 territory US
db2 connect to BOOKDB
db2 -tvf Books.sql
现在您已经为即将创建
![](/icons/65312de.gif)
模块准备好了数据库
![](/icons/65312dou2.gif)
定义 Java 身份验证和授权条目
要访问数据库
![](/icons/65312dou.gif)
需要在 Process Server 例子内定义
![](/icons/65312yi.gif)
个 Java Authentication and Authorization Services (JAAS) 条目
![](/icons/65312dou2.gif)
这个 JAAS 条目被称为 “BookDBAuthAlias”
![](/icons/65312dou.gif)
将由 JDBC Resource Adapter 使用
![](/icons/65312dou2.gif)
尽管创建 JAAS 条目
![](/icons/65312de.gif)
任务是由 Process Server 管理员负责
![](/icons/65312de.gif)
![](/icons/65312dou.gif)
但是可以使用清单 2 所示
![](/icons/65312de.gif)
样例 Jython 脚本来创建 JAAS 条目
![](/icons/65312dou2.gif)
检查并修改设置以符合您
![](/icons/65312de.gif)
需求
清单 2. CreateJAAS.jy
security = AdminConfig.getid('/Security:/')
jaasAttrs = [
['alias', 'BookDBAuthAlias'],
['userId', 'db2run'],
['password', 'db2run']]
AdminConfig.create('JAASAuthData', security, jaasAttrs)
AdminConfig.save
假设 WebSphere Integration Developer(此后简称为 Integration Developer)中有
![](/icons/65312yi.gif)
个 Process Server 服务器
![](/icons/65312dou.gif)
在 Integration Developer 中右键单击 Servers 选项卡运行该脚本
![](/icons/65312dou.gif)
然后选择 Run administrative script
![](/icons/65312dou2.gif)
在图 2 所示
![](/icons/65312de.gif)
对话框中
![](/icons/65312dou.gif)
输入以上脚本
![](/icons/65312de.gif)
路径和文件名
![](/icons/65312dou2.gif)
然后填充相应
![](/icons/65312de.gif)
WebSphere 管理员凭证并单击 Run
图 2. 运行 WebSphere Administrative 脚本
![](/icons/65312de.gif)
对话框
![](http://www.crazycoder.cn/WebFiles/20099/600e860e-5a82-4d41-97b4-9cdaff9cdb77.jpeg)
脚本成功运行后
![](/icons/65312dou.gif)
数据源和身份验证条目将被添加到 Process Server 环境
![](/icons/65312dou2.gif)
创建项目
注意:为了提供方便
![](/icons/65312dou.gif)
WebSphere Integration Developer Project Interchange 文件 RestModuleRA_PI.zip 可以通过下载获得
![](/icons/65312dou.gif)
该文件中包含有这个项目
启动 WebSphere Integration Developer 并单击 File > New > Project
![](/icons/65312dou2.gif)
选择项目类型 Module 并单击 Next
![](/icons/65312dou.gif)
如图 3 所示
图 3. 新项目向导
![](http://www.crazycoder.cn/WebFiles/20099/862278cd-3dad-4806-91bd-265e11599bda.jpeg)
为模块输入
![](/icons/65312yi.gif)
个名称
![](/icons/65312dou.gif)
例如 RestModule
![](/icons/65312dou.gif)
然后单击 Finish
![](/icons/65312dou.gif)
如图 4 所示
图 4. 新模块向导
![](http://www.crazycoder.cn/WebFiles/20099/543ccfe7-95f0-4462-806a-161be6787172.jpeg)
下
![](/icons/65312yi.gif)
步是在项目中创建并使用 JDBC Resource Adapter
![](/icons/65312dou2.gif)
在 Business Integration 视图中
![](/icons/65312dou.gif)
右键单击 RestModule 项目并选择 New > External Service
![](/icons/65312dou2.gif)
将显示 “New External Service” 屏幕
![](/icons/65312dou.gif)
如图 5 所示
图 5. External Service 向导
![](http://www.crazycoder.cn/WebFiles/20099/8f1c0299-7af3-4b90-a997-906918c112b3.jpeg)
选择 Adapters 并单击 Next
![](/icons/65312dou2.gif)
在下
![](/icons/65312yi.gif)
个对话屏幕中(图 6)
![](/icons/65312dou.gif)
选择 IBM WebSphere Adapter for JDBC 并单击 Next
图 6. 适配器类型选择
![](http://www.crazycoder.cn/WebFiles/20099/697b9fd0-6175-440f-8d28-9f58ff8da6db.jpeg)
将 Adapter Project
![](/icons/65312de.gif)
名称设置为 Rest_JDBC
![](/icons/65312dou.gif)
如图 7 所示
![](/icons/65312dou.gif)
然后单击 Next
图 7. 连接器项目配置
![](http://www.crazycoder.cn/WebFiles/20099/932a4b78-ce27-41af-a011-836d537d03ec.jpeg)
在下
![](/icons/65312yi.gif)
个对话屏幕中(图 8)
![](/icons/65312dou.gif)
单击 Add 并导航到数据库
![](/icons/65312de.gif)
JDBC 驱动器
![](/icons/65312de.gif)
位置
![](/icons/65312dou2.gif)
选择所有必需
![](/icons/65312de.gif)
文件然后单击 Next
图 8. JDBC 驱动器配置
![](http://www.crazycoder.cn/WebFiles/20099/0aaa56f7-ed74-4200-b2e0-c60024321ba0.jpeg)
如图 9 所示
![](/icons/65312dou.gif)
选择 Outbound 作为处理方向
![](/icons/65312dou.gif)
然后单击 Next
图 9. 适配器处理方向配置
![](http://www.crazycoder.cn/WebFiles/20099/3c649339-1319-4cb0-b85a-3373ca926bf0.jpeg)
下
![](/icons/65312yi.gif)
个对话框(图 10)需要填充所有
![](/icons/65312de.gif)
JDBC 数据库访问设置
![](/icons/65312dou2.gif)
将 Database 字段设置为 BookDB 并填充用户名和密码
图 10. 数据库访问配置
![](http://www.crazycoder.cn/WebFiles/20099/891a4e81-c7c9-4f9c-bb07-d063f54a3d36.jpeg)
单击 Next 将转到 Object Discovery 屏幕(图 11)
![](/icons/65312dou2.gif)
单击 Run Query 按钮
![](/icons/65312dou.gif)
然后在左侧面板中展开 DB2RUN > Tables 并双击 BOOKS
图 11. 数据发现对话框
![](http://www.crazycoder.cn/WebFiles/20099/24b993fe-00b7-4b55-ab84-240e95a970c7.jpeg)
单击 Next
![](/icons/65312dou.gif)
再次单击 Next
![](/icons/65312dou.gif)
在下
![](/icons/65312yi.gif)
个对话屏幕中接受所有默认
![](/icons/65312de.gif)
操作(图 12)
图 12. 数据操作定义对话框
![](http://www.crazycoder.cn/WebFiles/20099/b5a4c110-534d-4d95-813d-212df0e47279.jpeg)
将 “J2C Authentication Data Entry” 设置为 BookDBAuthAlias 并单击 Next
![](/icons/65312dou.gif)
如图 13 所示
图 13. 身份验证配置对话框
![](http://www.crazycoder.cn/WebFiles/20099/e29b6465-1ea6-400c-85cb-3825c12df435.jpeg)
在 Service Location Properties 屏幕中(图 14)
![](/icons/65312dou.gif)
取消选择 Use default
![](/icons/65312namespace.gif)
并在 Folder 字段中输入 resourceAdapter
图 14. 服务位置配置对话框
![](http://www.crazycoder.cn/WebFiles/20099/d8615e11-f7a6-42cc-87ed-59b500c253a7.jpeg)
单击 Finish
![](/icons/65312dou2.gif)
您需要定义
![](/icons/65312yi.gif)
个表示 ISBN 书号
![](/icons/65312de.gif)
业务对象
![](/icons/65312dou.gif)
该业务对象将在创建 RESTful 接口时用到
![](/icons/65312dou2.gif)
在 Business Integration 菜单中
![](/icons/65312dou.gif)
右键单击 Data Types > New > Business Object
![](/icons/65312dou2.gif)
将业务对象命名为 ISBN(图 15)并单击 Finish
图 15. 新业务对象向导
![](http://www.crazycoder.cn/WebFiles/20099/a4e72b48-deac-4acd-a4c5-7bed41cd0124.jpeg)
在 ISBN 选项卡中
![](/icons/65312dou.gif)
右键单击 ISBN 业务对象并单击 Add Field
![](/icons/65312dou2.gif)
![](/icons/65312yi.gif)
个新
![](/icons/65312de.gif)
字段将被添加到业务对象
![](/icons/65312dou.gif)
将业务对象重命名为 isbn
![](/icons/65312dou.gif)
其类型被修改为
![](/icons/65312int.gif)
![](/icons/65312dou2.gif)
结果如图 16 所示
图 16. Business Object 编辑器
![](http://www.crazycoder.cn/WebFiles/20099/f07db85c-9bac-4088-9b00-330ed9b2a14f.jpeg)
接下来
![](/icons/65312dou.gif)
需要创建
![](/icons/65312yi.gif)
个接口定义来从外部访问模块
![](/icons/65312dou2.gif)
启动
![](/icons/65312yi.gif)
个 Web 服务接口
![](/icons/65312dou.gif)
这样就可以在添加 RESTful 接口的前测试模块
![](/icons/65312de.gif)
基本功能
![](/icons/65312dou2.gif)
在 Business Integration 菜单中
![](/icons/65312dou.gif)
右键单击 Interfaces > New > Interface
![](/icons/65312dou2.gif)
在对话框(图 17)中
![](/icons/65312dou.gif)
填入接口名
![](/icons/65312dou.gif)
例如 BookWS
![](/icons/65312dou.gif)
然后单击 Finish
图 17. New Interface 向导
![](http://www.crazycoder.cn/WebFiles/20099/02cc3032-7bd1-45fb-acd7-441d118febb5.jpeg)
右键单击 BookWS 选项卡(图 18)
![](/icons/65312de.gif)
工作区
![](/icons/65312dou.gif)
然后选择 Add Request Response Operation
![](/icons/65312diaoyong.gif)
操作 getBook
![](/icons/65312dou.gif)
将 isbn
![](/icons/65312de.gif)
输入重新指定为整数类型
![](/icons/65312dou.gif)
然后将 bookdata
![](/icons/65312de.gif)
输出重新指定为 Db2runDb2runBooks 类型
![](/icons/65312dou2.gif)
保存接口
图 18. 接口操作编辑器
![](http://www.crazycoder.cn/WebFiles/20099/0db09faf-4b0e-4776-8f28-32044180f88c.jpeg)
在 Assembly Diagram 中
![](/icons/65312dou.gif)
从左侧菜单中选择 Process 并将其拖拽到工作区中
![](/icons/65312dou2.gif)
在 Business Integration 视图中
![](/icons/65312dou.gif)
将 BookWS 接口拽到工作区
![](/icons/65312dou2.gif)
将显示另
![](/icons/65312yi.gif)
个对话框(图 19)
![](/icons/65312dou.gif)
在其中选择 Export with Web Service Binding
![](/icons/65312dou2.gif)
选择 Export with Web Service Binding
![](/icons/65312dou.gif)
然后在下
![](/icons/65312yi.gif)
个对话框(图 20)中选择 soap/http
图 19. Web Service Export 类型对话框
![](http://www.crazycoder.cn/WebFiles/20099/4d1b25c1-96b9-4945-b007-b87881a9e4f2.jpeg)
图 20. Web Service Export 传输类型对话框
![](http://www.crazycoder.cn/WebFiles/20099/22123dbd-043c-4ca8-a7b2-ba1b78db4127.jpeg)
单击 OK 并保存模块
![](/icons/65312dou2.gif)
通过选择 BookWSExport1 导出
![](/icons/65312dou.gif)
将导出重命名为 BookWSExport(图 21)
![](/icons/65312dou2.gif)
在下面
![](/icons/65312de.gif)
Description Properties 选项卡中
![](/icons/65312dou.gif)
在 Name 字段中按下 Alt+Sh
![](/icons/65312if.gif)
t+R
图 21. Edit Art
![](/icons/65312if.gif)
acts 对话框
![](http://www.crazycoder.cn/WebFiles/20099/30888acb-e049-4a77-aad6-006e385efa11.jpeg)
单击 OK 并保存项目
![](/icons/65312dou2.gif)
通过将黄色
![](/icons/65312de.gif)
“o” 拖拽到流程组件的上
![](/icons/65312de.gif)
左侧
![](/icons/65312de.gif)
BookWS 导出
![](/icons/65312dou.gif)
将 BookWS 导出连接到模块
![](/icons/65312dou2.gif)
在显示
![](/icons/65312de.gif)
对话框中单击 Yes(图 22)
![](/icons/65312dou2.gif)
接下来
![](/icons/65312dou.gif)
将黄色
![](/icons/65312de.gif)
“o” 拖拽到 Component1
![](/icons/65312de.gif)
右侧末端
![](/icons/65312dou.gif)
并将其放到 JDBCOutboundInterface 导入
![](/icons/65312de.gif)
上面
![](/icons/65312dou2.gif)
单击对话框中
![](/icons/65312de.gif)
OK 并再次保存项目
双击组件
![](/icons/65312dou2.gif)
在组件实现生成对话框中在出现提示时选择 Yes(图 22)
图 22. 实现通知对话框
![](http://www.crazycoder.cn/WebFiles/20099/8dffa5aa-b7db-43bf-a66a-c5664f149b84.jpeg)
接受将在其中生成实现
![](/icons/65312de.gif)
默认文件夹
访问数据库
下
![](/icons/65312yi.gif)
步是访问数据库
![](/icons/65312dou2.gif)
如前所述
![](/icons/65312dou.gif)
这里没有什么让人惊奇
![](/icons/65312de.gif)
内容
![](/icons/65312dou2.gif)
模块将使用 JDBC Resource Adapter 导入来访问数据库中
![](/icons/65312de.gif)
数据
在 Component 选项卡中
![](/icons/65312dou.gif)
将 Invoke 操作拖到 Receive 和 Reply 操作的间
![](/icons/65312dou2.gif)
将此操作重命名为 AccessBookDB(图 23)
图 23. Assembly Diagram Database Access 操作
![](http://www.crazycoder.cn/WebFiles/20099/bedcb982-0957-46ba-8821-710bcce7a477.jpeg)
在选择了 AccessBookDB 操作
![](/icons/65312de.gif)
情况下
![](/icons/65312dou.gif)
单击下方
![](/icons/65312de.gif)
Properties 选项卡中
![](/icons/65312de.gif)
Details 区段
![](/icons/65312dou2.gif)
单击 Browse 按钮将 Partner 字段设置为 JDBCOutboundInterfacePartner 并将 Operation 字段设置为 retrieveDb2runDb2runBooksBG
![](/icons/65312dou2.gif)
单击 Input 变量中
![](/icons/65312de.gif)
none 字段
![](/icons/65312dou.gif)
然后单击 New
![](/icons/65312dou2.gif)
![](/icons/65312diaoyong.gif)
变量 BookBG 并单击 OK(图 24)
图 24. Business Object 变量设置
![](http://www.crazycoder.cn/WebFiles/20099/456cb6cf-5efb-4ac8-bfaf-4b984e316613.jpeg)
单击 Output 变量
![](/icons/65312de.gif)
none 字段
![](/icons/65312dou.gif)
然后也将它设置为 BookBG
![](/icons/65312dou2.gif)
然后保存工作
延伸阅读
最新评论