目录 1
第一部分 3
第1章 概述 3
1.1 什么是消息传递 3
1.2 什么是JMSAPI 3
1.3 何时可以使用JMSAPI 4
1.4 JMSAPI在J2EE平台上的作用 5
第2章 JMSAPI的基本概念 6
2.1 JMSAPI体系结构 6
2.2.2 发布/订阅消息传递域 7
2.2.1 点对点的消息传递域 7
2.2 消息传递域 7
2.3 消息的消费 8
第3章 JMSAPI编程模型 9
3.1 被管理对象 9
3.1.1 连接工厂 10
3.1.2 目的地 10
3.2 连接 11
3.3 会话 11
3.4 消息生产者 12
3.5 消息消费者 12
3.5.1 消息监听器 13
3.6 消息 14
3.6.1 消息头 14
3.5.2 消息选择器 14
3.6.2 消息属性 15
3.6.3 消息体 15
3.7 异常处理 16
第4章 编写简单的JMS客户应用程序 17
4.1 设置运行应用程序的环境 17
4.2 一个简单的点对点示例 18
4.2.1 编写PTP各户程序 18
4.2.4 创建JMS被管理对象 24
4.2.2 编译PTP客户程序 24
4.2.3 启动JMS提供者 24
4.2.5 运行PTP客户程序 25
4.2.6 删除队列 26
4.3 一个简单的发布/订阅示例 26
4.3.1 编写发布/订阅客户程序 26
4.3.2 编译发布/订阅客户程序 33
4.3.3 启动JMS提供者 33
4.3.4 创建JMS被管理对象 33
4.3.5 运行发布/订阅客户程序 33
4.3.6 删除主题和终止服务器 34
4.4.1 两个J2EE服务器间的通信 35
4.4.2 J2EE服务器和没有运行J2EE服务器的系统间的通信 35
4.4 在多个系统上运行JMS客户程序 35
第5章 创建健壮的JMS应用程序 37
5.1 使用基本的可靠性机制 37
5.1.1 控制消息的确认 37
5.1.2 指定消息的永久性 38
5.1.3 设置消息的优先级 39
5.1.4 允许消息过期 39
5.1.5 创建临时的目的地 39
5.2.1 创建持久订阅 40
5.2 使用高级的可靠性机制 40
5.2.2 使用JMSAPI本地事务 42
第6章 在J2EE应用程序中使用JMSAPI 44
6.1 使用enterprisebean生产和同步接收消息 44
6.1.1 被管理对象 44
6.1.2 资源管理 44
6.1.3 事务 45
6.2 使用消息驱动bean 45
6.3 管理分布式事务 46
6.4 将JMSAPI用于应用程序客户和Web组件 48
7.1 编写和编译应用程序组件 49
第7章 一个使用JMSAPI的简单J2EE应用程序 49
7.1.1 为应用程序客户SimpleClient.java编码 50
7.1.2 为消息驱动bean:MessageBean.java编码 52
7.1.3 编译源文件 54
7.2 创建和打包应用程序 54
7.2.1 启动J2EE服务器和Deploytool 54
7.2.2 创建一个队列 55
7.2.3 创建J2EE应用程序 55
7.2.4 打包应用程序客户 55
7.2.5 打包消息驱动bean 57
7.3.1 观察部署描述符 59
7.3 部署和运行应用程序 59
7.2.6 检查JNDI名称 59
7.3.2 添加服务器 60
7.3.3 部署应用程序 61
7.3.4 运行客户程序 61
7.3.5 取消应用程序的部署 62
7.3.6 删除应用程序和终止服务器 62
第8章 使用带有sessionbean的JMSAPl的J2EE应用程序 63
8.1 编写和编译应用程序组件 63
8.1.1 为应用程序客户MyAppClient.java编码 64
8.1.2 为PublisherSessionBean编码 65
8.1.3 为消息驱动bean:MessageBean.java编码 69
8.1.4 编译源文件 71
8.2 创建和打包应用程序 72
8.2.1 启动J2EE服务器和Deploytool 72
8.2.2 创建主题 72
8.2.3 创建连接工厂 73
8.2.4 创建J2EE应用程序 73
8.2.5 打包应用程序客户 73
8.2.6 打包sessionbean 74
8.2.7 打包消息驱动bean 76
8.2.8 指定JNDI名称 77
8.3.2 部署应用程序 78
8.3.3 运行客户程序 78
8.3 部署和运行应用程序 78
8.3.1 添加服务器 78
8.3.4 取消应用程序的部署 79
8.3.5 删除应用程序并终止服务器 79
第9章 使用带有entitybean的JMSAPI的J2EE应用程序 80
9.1 HumanResource应用程序概述 80
9.2 编写和编译应用程序组件 81
9.2.1 为应用程序客户HumanResourceClient.java编码 82
9.2.2 为消息驱动bean编码 86
9.2.3 为entitybean编码 97
9.2.4 编译源文件 105
9.3 创建和打包应用程序 106
9.3.1 启动J2EE服务器和Deploytool 106
9.3.2 创建一个队列 106
9.3.3 启动Cloudscape数据库服务程序 107
9.3.4 创建J2EE应用程序 107
9.3.5 打包应用程序客户 107
9.3.6 打包消息驱动的Equipmentbean 109
9.3.7 打包消息驱动的Officebean 110
9.3.8 打包消息驱动的Schedulebean 112
9.3.9 打包entitybean 113
9.3.10 指定entitybean的部署设置 115
9.3.11 指定JNDI名称 115
9.4 部署和运行应用程序 116
9.4.1 添加服务器 116
9.4.2 部署应用程序 116
9.4.3 运行客户程序 117
9.4.4 撤销应用程序的部署 117
9.4.5 删除应用程序和终止服务器 117
第10章 使用两个J2EE服务器的应用程序示例 118
10.1 应用程序概述 118
10.2.1 为应用程序客户MultiAppServerRequester.java编码 119
10.2 编写和编译应用程序组件 119
10.2.2 为消息驱动bean:ReplyMsgBean.java编码 125
10.2.3 编译源文件 128
10.3 创建和打包应用程序 128
10.3.1 启动J2EE服务器和Deploytool 129
10.3.2 创建连接工厂 129
10.3.3 创建第一个J2EE应用程序 130
10.3.4 打包应用程序客户 130
10.3.5 创建第二个J2EE应用程序 132
10.3.6 打包消息驱动Bean 132
10.4 部署和运行应用程序 134
10.3.7 检查JNDI名称 134
10.4.1 添加服务器 135
10.4.2 部署应用程序 135
10.4.3 运行客户程序 136
10.4.4 撤销应用程序的部署 136
10.4.5 删除应用程序和终止服务器 136
10.5 从一个没有运行J2EE服务器的远程系统访问J2EE应用程序 137
10.5.1 从一个独立的客户程序访问J2EE应用程序 137
10.5.2 使用runclient访问远程应用程序客户 142
第11章 BytesMessage对象 145
11.1 概述及相关方法和接口 145
第二部分 145
11.2 接口定义 146
11.3 方法 146
第12章 Connetion对象 154
12.1 概述及相关接口 154
12.2 接口定义 155
12.3 方法 155
第13章 ConnectionFactoty对象 159
13.1 概述及相关接口 159
13.2 接口定义 160
14.2 接口定义 161
14.3 方法 161
第14章 ConnectionMetaData对象 161
14.1 概述 161
第15章 DeliveryMode对象 164
15.1 概述 164
15.2 接口定义 164
15.3 字段 164
第16章 Destination对象 166
16.1 概述和相关接口 166
16.2 接口定义 167
17.3 方法 168
17.2 接口定义 168
第17章 ExceptionListener对象 168
17.1 概述及相关方法 168
第18章 lllegalStateException对象 169
18.1 概述 169
18.2 类定义 169
18.3 构造函数 169
第19章 InvalidClientlDException对象 170
19.1 概述 170
19.2 类定义 170
19.3 构造函数 170
20.2 类定义 171
20.3 构造函数 171
20.1 概述 171
第20章 InvalidDestinationException对象 171
第21章 InvalidSelectorException对象 172
21.1 概述 172
21.2 类定义 172
21.3 构造函数 172
第22章 JMSException对象 173
22.1 概述 173
22.2 类定义 173
22.4 方法 174
22.3 构造函数 174
第23章 JMSSecurityException对象 175
23.1 概述 175
23.2 类定义 175
23.3 构造函数 175
第24章 MapMessage对象 176
24.1 概述及相关方法和接口 176
24.2 接口定义 177
24.3 方法 178
25.1.1 消息体 185
25.1 概述 185
第25章 Message对象 185
25.1.2 消息头 186
25.1.3 消息属性 186
25.1.4 JMS消息接口的提供者实现 188
25.1.5 消息选择器 188
25.1.6 相关方法和接口 192
25.2 接口定义 192
25.3 字段 193
25.4 方法 194
26.1 概述及相关接口 209
26.2 接口定义 209
第26章 MessageConsumer对象 209
26.3 方法 210
第27章 MessageEOFException对象 212
27.1 概述 212
27.2 类定义 212
27.3 构造函数 212
28.2 类定义 213
28.3 构造函数 213
28.1 概述 213
第28章 MessageFormatException对象 213
第29章 MessageListener对象 215
29.1 概述 215
29.2 接口定义 215
29.3 方法 215
30章 MessageNotReadableException对象 216
30.1 概述 216
30.2 类定义 216
30.3 构造函数 216
31.2 类定义 217
31.3 构造函数 217
第31章 MessageNotWriteableException对象 217
31.1 概述 217
第32章 MessageProducer对象 218
32.1 概述及相关接口 218
32.2 接口定义 218
32.3 方法 219
第33章 ObjectMessage对象 223
33.1 概述及相关方法和接口 223
33.2 接口定义 223
33.3 方法 223
34.2 接口定义 225
34.3 方法 225
34.1 概述及相关方法和接口 225
第34章 Queue对象 225
第35章 QueueBrowser对象 227
35.1 概述及相关方法和接口 227
35.2 接口定义 227
35.3 方法 227
第36章 对象QueueConnection 229
36.1 概述及相关接口 229
36.2 接口定义 229
36.3 方法 229
37.3 方法 231
37.2 接口定义 231
37.1 概述及相关接口 231
第37章 QueueConnectionFactory对象 231
第38章 QueueReceiver对象 233
38.1 概述及相关方法和接口 233
38.2 接口定义 233
38.3 方法 233
第39章 QueueRequestor对象 235
39.1 概述及相关接口 235
39.2 类定义 235
39.3 构造函数 235
39.4 方法 236
第40章 QueueSender对象 237
40.1 概述及相关方法和接口 237
40.2 接口定义 237
40.3 方法 238
第41章 QueueSession对象 241
41.1 概述及相关方法和接口 241
41.2 接口定义 241
41.3 方法 241
42.3 构造函数 244
42.2 类定义 244
42.1 概述 244
第42章 ResourceAllocationException对象 244
第43章 Session对象 245
43.1 概述及相关接口 245
43.2 接口定义 246
43.3 字段 246
43.4 方法 247
第44章 StreamMessage对象 251
44.1 概述及相关方法和接口 251
44.2 接口定义 252
44.3 方法 253
第45章 TemporaryQueue对象 261
45.1 概述及相关方法和接口 261
45.2 接口定义 261
45.3 方法 261
第46章 TemporaryTopic对象 262
46.1 概述及相关方法和接口 262
46.2 接口定义 262
46.3 方法 262
47.2 接口定义 263
47.3 方法 263
第47章 TextMessage对象 263
47.1 概述及相关方法和接口 263
第48章 Topic对象 265
48.1 概述及相关方法和接口 265
48.2 接口定义 265
48.3 方法 265
第49章 TopicConnection对象 267
49.1 概述及相关接口 267
49.2 接口定义 267
49.3 方法 267
50.2 接口定义 269
50.3 方法 269
第50章 TopicConnectionFactory对象 269
50.1 概述与相关接口 269
第51章 TopicPublisher对象 271
51.1 概述与相关方法 271
51.2 接口定义 271
51.3 方法 272
第52章 TopicRequestor对象 275
52.1 概述及相关接口 275
52.2 类定义 275
52.3 构造函数 275
52.4 方法 276
第53章 TopicSession对象 277
53.1 概述及相关方法和接口 277
53.2 接口定义 277
53.3 方法 277
第54章 TopicSubscriber对象 282
54.1 概述及相关方法和接口 282
54.2 接口定义 283
54.3 方法 283
55.3 构造函数 284
55.2 类定义 284
55.1 概述 284
第55章 TransactionlnProgressException对象 284
第56章 TransactionRolledBackException对象 286
56.1 概述 286
56.2 类定义 286
56.3 构造函数 286
附录AJMS客户程序示例 287
A.1 持久订阅 287
A.2 事务 294
A.3 确认模式 316
A.4 实用类 326
术语表 334