第1章 Web服务快速入门 1
1.1 Web服务杂项 3
1.2 Web服务有什么好处 4
1.3 Web服务和面向服务的架构 6
1.4 Web服务简史 8
1.4.1 从DCE/RPC到XML-RPC 8
1.4.2 分布式对象架构:Java示例 10
1.4.3 用Web服务来救援 12
1.5 什么是REST 13
1.5.1 动词和不透明名词 16
1.6 回顾HTTP请求和响应 17
1.7 HTTP作为API 19
1.7.1 用Java编写的两个HTTP客户端 20
1.8 第一个REST式的例子 23
1.8.1 Predictions Web服务的工作原理 24
1.8.2 针对Predictions Web服务的客户端 32
1.9 为什么REST式Web服务要使用servlet 33
1.10 下一步是什么 35
第2章 R EST式的Web服务:服务端 39
2.1 REST式服务作为一个HttpServlet类 40
2.1.1 实现细节 41
2.1.2 针对predictions2服务的示例客户端调用 52
2.2 REST式Web服务作为一个JAX-RS资源 53
2.2.1 第一个使用Jersey的JAX-RS Web服务 54
2.2.2 用Java应用程序发布JAX-RS资源 55
2.2.3 用Tomcat发布JAX-RS资源 56
2.2.4 Adage类 58
2.2.5 JAX-RS生成的XML和JSON响应 62
2.2.6 将Predictions Web服务移植到JAX-RS 66
2.3 REST式Web服务作为Restlet的资源 75
2.3.1 对adages2服务的示例调用 83
2.3.2 在不使用Web服务器的情况下发布adages2 Restlet服务 84
2.3.3 REST式服务作为一个@WebServiceProvider 85
2.4 下一步是什么 94
第3章 REST式的Web服务:客户端 95
3.1 针对Java REST式Web服务的Perl客户端 96
3.2 针对亚马逊电子商务服务的客户端 101
3.3 一个独立的JAX-B示例 110
3.3.1 XStream选项 114
3.4 针对亚马逊电子商务服务的另一个客户端 119
3.5 CTA公共汽车跟踪服务 123
3.6 REST式客户端和WADL文档 126
3.7 JAX-RS客户端API 132
3.8 用于JavaScript客户端的JSON 134
3.8.1 JSONP和Web服务 135
3.8.2 使用jQuery编写的组合REST式服务 136
3.8.3 一个Ajax轮询的例子 139
3.9 下一步是什么 142
第4章 基于SOAP的Web服务 145
4.1 一个基于SOAP的Web服务 146
4.2 在两个文件中的RandService 151
4.3 针对RandService的客户端 152
4.3.1 针对RandService的Java客户端 153
4.3.2 针对RandService的C#客户端 156
4.3.3 针对RandService的Perl客户端 157
4.4 WSDL服务合同详解 159
4.4.1 types部分 162
4.4.2 message部分 163
4.4.3 portType部分 163
4.4.4 binding部分 164
4.4.5 service部分 165
4.4.6 Java和XML模式的数据类型绑定 165
4.4.7 包装和解包的文档风格 168
4.4.8 用于服务端的wsimport构件 170
4.5 针对亚马逊的电子商务服务的基于SOAP的客户端 172
4.5.1 针对基于SOAP的服务的异步客户端 178
4.6 下一步是什么 181
第5章 SOAP处理程序和错误 183
5.1 基于SOAP的服务和客户端中的处理程序层 184
5.2 在predictionsSOAP服务中的处理程序和错误 192
5.2.1 后台支持类 196
5.2.2 从客户端到服务 199
5.2.3 签名验证 208
5.2.4 来自应用层和处理程序层的错误 208
5.2.5 链接服务端处理程序的服务 209
5.3 有两个处理程序的处理程序链 210
5.4 基于SOAP的Web服务和二进制数据 215
5.5 传输层 221
5.6 Axis2 224
5.7 下一步是什么 227
第6章 Web服务安全性 229
6.1 线路层安全 230
6.1.1 HTTPS基础 231
6.1.2 对称和非对称加密/解密 232
6.1.3 HTTPS如何提供三种安全服务 233
6.1.4 HTTPS握手 234
6.1.5 HttpsUJRLConnection类 236
6.2 个非常轻量级的HTTPS服务器和客户端 241
6.3 在生产级Web服务器中的HTTPS 250
6.3.1 强制使用HTTPS访问Web服务 252
6.3.2 一个针对predictions2服务的HTTPS客户端 254
6.4 容器管理的安全性 257
6.4.1 用Tomcat安全领域链接服务的web.xml 259
6.4.2 在用户/角色安全性中的客户端 261
6.4.3 使用curl实用程序用于HTTPS测试 264
6.4.4 在HTTPS与用户/角色的安全性下的@WebService 266
6.4.5 使用摘要的密码替代密码 269
6.5 WS-Security 271
6.5.1 使用WS-Security保护一个@WebService 273
6.6 下一步是什么 285
第7章 Web服务和Java应用程序服务器 287
7.1 Web容器 288
7.1.1 面向消息的中间件 289
7.1.2 企业Java Bean容器 289
7.1.3 命名和查找服务 291
7.1.4 安全提供者 291
7.1.5 客户端容器 292
7.1.6 数据库系统 292
7.2 通向一个轻量级的JAS 292
7.3 GlassFish基础 292
7.4 在GlassFish中基于servlet的Web服务 295
7.4.1 具有混合API的例子 298
7.5 一个互动网站和基于SOAP的Web服务 303
7.6 一个作为@Stateless会话EJB的@WebService 308
7.6.1 包装和部署predictionsEJB服务 313
7.6.2 针对predictionsEJB服务的客户端 315
7.7 TomEE:带有Java EE扩展的Tomcat 317
7.7.1 将predictionsEJB Web服务移植到TomEE 318
7.7.2 将EJB部署在一个WAR文件中 319
7.8 Java Web服务最适合用在什么地方 320
7.8.1 回到手头的问题 323
索引 325