譯者序
前 言
第一部分 引言
第1章 概述 2
1.1 Java EE 7平颱新增特性 3
1.2 Java EE應用模型 3
1.3 分布式多層應用 4
1.3.1 安全 4
1.3.2 Java EE組件 5
1.3.3 Java EE客戶端 6
1.3.4 Web組件 7
1.3.5 業務組件 8
1.3.6 企業信息係統層 8
1.4 Java EE容器 9
1.4.1 容器服務 9
1.4.2 容器類型 10
1.5 Web服務支持 11
1.5.1 XML 12
1.5.2 SOAP傳輸協議 12
1.5.3 WSDL標準格式 12
1.6 Java EE應用裝配與部署 12
1.7 開發角色 13
1.7.1 Java EE産品提供商 13
1.7.2 工具提供商 13
1.7.3 應用組件提供商 13
1.7.4 應用裝配人員 14
1.7.5 應用部署人員和管理員 14
1.8 Java EE 7 API 15
1.8.1 EJB技術 15
1.8.2 Java Servlet技術 17
1.8.3 JSF技術 18
1.8.4 JSP技術 19
1.8.5 JSP標準標記庫 19
1.8.6 Java持久化API 19
1.8.7 Java事務API 20
1.8.8 RESTful Web服務Java API 20
1.8.9 托管bean 20
1.8.10 Java EE 的上下文和依賴注入 20
1.8.11 Java的依賴注入 21
1.8.12 bean驗證 21
1.8.13 Java消息服務API 21
1.8.14 Java EE連接器架構 21
1.8.15 JavaMail API 22
1.8.16 Java容器授權契約 22
1.8.17 Java容器認證服務提供者接口 22
1.8.18 WebSocket Java API 22
1.8.19 JSON處理Java API 22
1.8.20 Java EE的並發工具 23
1.8.21 Java平颱的批處理應用 23
1.9 Java平颱標準版7的Java EE 7 API 23
1.9.1 Java數據庫互連API 23
1.9.2 Java命名和目錄接口API 23
1.9.3 JavaBeans激活框架 24
1.9.4 XML處理Java API 24
1.9.5 Java XML綁定架構 24
1.9.6 XML Web服務Java API 25
1.9.7 帶附件SOAP Java API 25
1.9.8 Java認證和授權服務 25
1.9.9 Java平颱的公共注解 25
1.10 GlassFish服務器工具 25
第2章 使用教程示例 27
2.1 必要軟件 27
2.1.1 Java EE 7軟件開發包 28
2.1.2 Java平颱標準版 28
2.1.3 Java EE 7教程組件 28
2.1.4 NetBeans IDE 29
2.1.5 Apache Maven 30
2.2 啓動和停止GlassFish服務器 30
2.2.1 使用NetBeans IDE啓動GlassFish服務器 30
2.2.2 使用NetBeans IDE停止GlassFish服務器 30
2.2.3 使用命令行啓動GlassFish服務器 30
2.2.4 使用命令行停止GlassFish服務器 31
2.3 啓動管理控製颱 31
2.3.1 使用NetBeans IDE啓動管理控製颱 31
2.4 啓動和停止Java DB服務器 31
2.4.1 使用NetBeans IDE啓動數據庫服務器 32
2.5 構建示例 32
2.6 教程示例目錄結構 32
2.7 教程中的Java EE 7 Maven原型 33
2.7.1 安裝教程Maven原型 33
2.8 獲取教程最新更新 33
2.8.1 使用NetBeans IDE更新教程 33
2.8.2 使用命令行更新教程 34
2.9 調試Java EE應用 34
2.9.1 使用服務器日誌 34
2.9.2 使用調試器 35
第二部分 平颱基礎知識
第3章 資源創建 38
3.1 資源和JNDI命名 38
3.2 數據源對象和連接池 39
3.3 以管理方式創建資源 40
第4章 注入 41
4.1 資源注入 41
4.2 依賴注入 42
4.3 資源注入和依賴注入的主要區彆 43
第5章 打包 44
5.1 打包應用 44
5.2 打包企業bean 46
5.2.1 企業bean打包到EJB JAR模塊中 46
5.2.2 企業bean打包到WAR模塊中 46
5.3 打包Web歸檔 47
5.4 打包資源適配器歸檔 48
第三部分 Web層
第6章 Web應用入門 50
6.1 Web應用 50
6.2 Web應用生命周期 51
6.3 使用JSF技術的Web模塊:hello1示例 52
6.3.1 使用NetBeans IDE查看hello1 Web模塊 52
6.3.2 打包和部署hello1 Web模塊 56
6.3.3 查看已部署的Web模塊 56
6.3.4 運行已部署的hello1 Web模塊 57
6.3.5 取消部署hello1 Web模塊 57
6.4 使用Java Servlet技術的Web模塊:hello2示例 58
6.4.1 URL映射到Web組件 58
6.4.2 檢查hello2 Web模塊 59
6.4.3 運行hello2示例 60
6.5 配置Web應用 61
6.5.1 設置上下文參數 61
6.5.2 聲明歡迎文件 62
6.5.3 將錯誤映射到錯誤屏幕 63
6.5.4 聲明資源引用 64
6.6 關於Web應用的更多信息 65
第7章 JSF技術 66
7.1 什麼是JSF應用 67
7.2 JSF技術優勢 68
7.3 一個簡單的JSF應用 68
7.4 用戶界麵組件模型 70
7.4.1 用戶界麵組件類 70
7.4.2 組件呈現模型 72
7.4.3 轉換模型 72
7.4.4 事件和監聽器模型 73
7.4.5 驗證模型 74
7.5 導航模型 74
7.6 JSF應用的生命周期 77
7.6.1 JSF生命周期概述 77
7.6.2 恢復視圖階段 79
7.6.3 應用請求值階段 80
7.6.4 處理驗證階段 80
7.6.5 更新模型值階段 80
7.6.6 調用應用階段 81
7.6.7 呈現響應階段 81
7.7 部分處理和部分呈現 81
7.8 關於JSF技術的更多信息 82
第8章 Facelets介紹 83
8.1 什麼是Facelets 83
8.2 Facelets應用的生命周期 85
8.3 開發一個簡單的Facelets應用:guessnumber-jsf示例應用 85
8.3.1 創建Facelets應用 86
8.3.2 配置應用 89
8.3.3 運行guessnumber-jsf Facelets示例 90
8.4 使用Facelets模闆 91
8.5 復閤組件 93
8.6 Web資源 95
8.7 可重定位資源 96
8.8 資源庫契約 96
8.8.1 hello1-rlc示例應用 97
8.9 HTML5友好的標記 99
8.9.1 使用直通元素 100
8.9.2 使用直通屬性 101
8.9.3 reservation示例應用 102
第9章 錶達式語言 105
9.1 EL概述 105
9.2 直接和延遲計算語法 106
9.2.1 直接計算 106
9.2.2 延遲計算 107
9.3 值錶達式和方法錶達式 107
9.3.1 值錶達式 107
9.3.2 方法錶達式 111
9.3.3 lambda錶達式 112
9.4 集閤對象操作 112
9.5 操作符 114
9.6 保留字 115
9.7 EL錶達式示例 115
9.8 關於錶達式語言的更多信息 116
第10章 在Web頁麵中使用JSF技術 117
10.1 建立頁麵 117
10.2 使用HTML標記庫標記為頁麵增加組件 118
10.2.1 常用組件標記屬性 120
10.2.2 增加HTML Head和Body標記 122
10.2.3 增加錶單組件 123
10.2.4 使用文本組件 123
10.2.5 使用命令組件標記完成動作和導航 127
10.2.6 使用h:graphicImage標記增加圖形圖像 128
10.2.7 使用h:panelGrid和h:panelGroup標記放置組件 129
10.2.8 顯示選擇單個值的組件 131
10.2.9 顯示選擇多個值的組件 132
10.2.10 使用f:selectItem和f:selectItems標記 133
10.2.11 顯示選擇組件的結果 135
10.2.12 使用數據綁定錶組件 135
10.2.13 使用h:message和h:messages標記顯示錯誤消息 138
10.2.14 使用h:button和h:link標記創建書簽式URL 139
10.2.15 使用視圖參數配置書簽式URL 139
10.2.16 bookmarks示例應用 140
10.2.17 使用h:outputScript和h:outputStylesheet標記實現資源重定位 141
10.3 使用核心標記 143
第11章 使用轉換器、監聽器和驗證器 146
11.1 使用標準轉換器 146
11.1.1 轉換組件值 147
11.1.2 使用DateTimeConverter 148
11.1.3 使用NumberConverter 149
11.2 在組件上注冊監聽器 150
11.2.1 在組件上注冊值改變監聽器 151
11.2.2 在組件上注冊動作監聽器 151
11.3 使用標準驗證器 153
11.3.1 驗證組件值 154
11.3.2 使用驗證器標記 154
11.4 引用托管bean方法 155
11.4.1 引用完成導航的方法 156
11.4.2 引用處理動作事件的方法 156
11.4.3 引用完成驗證的方法 156
11.4.4 引用處理值改變事件的方法 157
第12章 使用JSF技術開發應用 158
12.1 JSF技術中的托管bean 158
12.1.1 創建托管bean 158
12.1.2 使用EL引用托管bean 159
12.2 編寫bean屬性 160
12.2.1 編寫綁定到組件值的屬性 161
12.2.2 編寫綁定到組件實例的屬性 166
12.2.3 編寫綁定到轉換器、監聽器或驗證器的屬性 167
12.3 編寫托管bean方法 168
12.3.1 編寫處理導航的方法 168
12.3.2 編寫處理動作事件的方法 169
12.3.3 編寫完成驗證的方法 170
12.3.4 編寫處理值改變事件的方法 170
第13章 結閤使用Ajax和JSF技術 172
13.1 Ajax概述 173
13.2 結閤JSF技術使用Ajax功能 173
13.3 結閤Facelets使用Ajax 174
13.3.1 使用f:ajax標記 174
13.4 發送Ajax請求 175
13.4.1 使用event屬性 175
13.4.2 使用execute屬性 176
13.4.3 使用immediate屬性 176
13.4.4 使用listener屬性 177
13.5 在客戶端監視事件 177
13.6 處理錯誤 177
13.7 接收Ajax響應 178
13.8 Ajax請求生命周期 179
13.9 組件分組 179
13.10 加載JavaScript資源 180
13.10.1 在Facelets應用中使用 JavaScript API 180
13.10.2 bean類中使用@Resource-Dependency注解 181
13.11 ajaxguessnumber示例應用 181
13.11.1 ajaxguessnumber源文件 181
13.11.2 運行ajaxguessnumber示例 183
13.12 關於JSF技術中Ajax的更多信息 184
第14章 復閤組件:高級主題與示例 185
14.1 復閤組件的屬性 185
14.2 調用托管bean 186
14.3 驗證復閤組件值 186
14.4 compositecomponentexample示例應用 187
14.4.1 復閤組件文件 187
14.4.2 使用頁麵 188
14.4.3 托管bean 189
14.4.4 運行compositecomponen-texample示例 189
第15章 創建定製UI組件和其他定製對象 191
15.1 確定是否需要定製組件或呈現器 192
15.1.1 何時使用定製組件 192
15.1.2 何時使用定製呈現器 193
15.1.3 組件、呈現器和標記組閤 194
15.2 瞭解圖像地圖示例 195
15.2.1 為什麼使用JSF技術實現圖像地圖 195
15.2.2 瞭解呈現的HTML 195
15.2.3 瞭解Facelets頁麵 196
15.2.4 配置模型數據 197
15.2.5 圖像地圖應用類總結 198
15.3 創建定製組件的步驟 199
15.4 創建定製組件類 199
15.4.1 指定組件族 202
15.4.2 完成編碼 202
15.4.3 完成解碼 204
15.4.4 允許組件屬性接受錶達式 204
15.4.5 保存和恢復狀態 205
15.5 將呈現委托到呈現器 207
15.5.1 創建呈現器類 207
15.5.2 標識呈現器類型 208
15.6 實現事件監聽器 209
15.6.1 實現值改變監聽器 209
15.6.2 實現動作監聽器 210
15.7 處理定製組件的事件 210
15.8 在標記庫描述文件中定義定製組件標記 211
15.9 使用定製組件 212
15.10 創建和使用定製轉換器 214
15.10.1 創建定製轉換器 214
15.10.2 使用定製轉換器 216
15.11 創建和使用定製驗證器 218
15.11.1 實現驗證器接口 219
15.11.2 指定定製標記 220
15.11.3 使用定製驗證器 221
15.12 將組件值和實例綁定到托管bean屬性 222
15.12.1 將組件值綁定到屬性 223
15.12.2 將組件值綁定到隱式對象 224
15.12.3 將組件實例綁定到bean屬性 225
15.13 將轉換器、監聽器和驗證器綁定到托管bean屬性 226
第16章 配置JSF應用 227
16.1 使用注解配置托管bean 228
16.1.1 使用托管bean作用域 228
16.2 應用配置資源文件 229
16.2.1 配置eager應用作用域托管bean 230
16.2.2 應用配置資源文件的順序 230
16.3 使用Faces流 231
16.3.1 應用中打包流 233
16.3.2 最簡單的流:simple-flow示例應用 233
16.3.3 checkout-module示例應用 235
16.4 配置托管bean 241
16.4.1 使用managed-bean元素 242
16.4.2 使用managed-property元素初始化屬性 243
16.4.3 初始化映射和列錶 248
16.5 注冊應用消息 248
16.5.1 使用FacesMessage創建消息 249
16.5.2 引用錯誤消息 250
16.6 使用默認驗證器 250
16.7 注冊定製驗證器 251
16.8 注冊定製轉換器 251
16.9 配置導航規則 252
16.10 嚮呈現包注冊定製呈現器 254
16.11 注冊定製組件 256
16.12 JSF應用的基本需求 257
16.12.1 使用Web部署描述文件配置應用 257
16.12.2 配置工程階段 260
16.12.3 包含類、頁麵和其他資源 260
第17章 Java Servlet技術 261
17.1 什麼是servlet 262
17.2 servlet生命周期 262
17.2.1 處理servlet生命周期事件 262
17.2.2 處理servlet錯誤 263
17.3 共享信息 264
17.3.1 使用作用域對象 264
17.3.2 控製對共享資源的並發訪問 264
17.4 創建和初始化servlet 265
17.5 編寫服務方法 265
17.5.1 從請求獲取信息 266
17.5.2 構造響應 266
17.6 過濾請求和響應 267
17.6.1 編寫過濾器 268
17.6.2 編寫定製請求和響應 269
17.6.3 指定過濾器映射 269
17.7 調用其他Web資源 270
17.7.1 在響應中包含其他資源 271
17.7.2 控製轉移到另一個Web組件 271
17.8 訪問Web上下文 272
17.9 維護客戶端狀態 272
17.9.1 訪問會話 272
17.9.2 將對象與會話關聯 272
17.9.3 會話管理 272
17.9.4 會話跟蹤 273
17.10 終結servlet 273
17.10.1 跟蹤服務請求 274
17.10.2 通知方法關閉 274
17.10.3 創建周到的長時間運行方法 275
17.11 使用Java Servlet技術上傳文件 276
17.11.1 @MultipartConfig注解 276
17.11.2 getParts和getPart方法 277
17.12 異步處理 277
17.12.1 servlet中的異步處理 277
17.12.2 等待資源 278
17.13 非阻塞I/O 280
17.13.1 使用非阻塞I/O讀取大HTTP POST請求 281
17.14 協議升級處理 282
17.15 mood示例應用 284
17.15.1 mood示例應用的組件 284
17.15.2 運行mood示例 284
17.16 fileupload示例應用 285
17.16.1 fileupload示例應用的體係架構 285
17.16.2 運行fileupload示例 288
17.17 dukeetf示例應用 289
17.17.1 dukeetf示例應用的體係架構 289
17.17.2 運行dukeetf示例應用 293
17.18 關於Java Servlet技術的更多信息 294
第18章 WebSocket Java API 295
18.1 WebSocket介紹 296
18.2 在Java EE平颱中創建WebSocket應用 297
18.3 可編程端點 297
18.4 注解端點 298
18.5 發送和接收消息 299
18.5.1 發送消息 299
18.5.2 接收消息 300
18.6 維護客戶端狀態 301
18.7 使用編碼器和解碼器 301
18.7.1 實現編碼器將Java對象轉換為WebSocket消息 301
18.7.2 實現解碼器將WebSocket消息轉換為Java對象 303
18.8 路徑參數 304
18.9 處理錯誤 305
18.10 指定端點配置器類 305
18.11 dukeetf2示例應用 306
18.11.1 dukeetf2示例應用的體係架構 306
18.11.2 運行dukeetf2示例應用 309
18.12 websocketbot示例應用 310
18.12.1 websocketbot示例應用的體係架構 310
18.12.2 運行websocketbot示例應用 314
18.13 關於WebSocket的更多信息 315
第19章 JSON處理 316
19.1 JSON簡介 316
19.1.1 JSON語法 316
19.1.2 JSON的使用 317
19.1.3 生成和解析JSON數據 317
19.2 Java EE平颱中的JSON處理 318
19.3 使用對象模型API 319
19.3.1 從JSON數據創建對象模型 319
19.3.2 從應用代碼創建對象模型 319
19.3.3 導航對象模型 320
19.3.4 將對象模型寫至一個流 321
19.4 使用流API 322
19.4.1 使用解析器讀取JSON數據 322
19.4.2 使用生成器寫JSON數據 324
19.5 Java EE RESTful Web服務中的JSON 324
19.6 jsonpmodel示例應用 325
19.6.1 jsonpmodel示例應用的組成 325
19.6.2 運行jsonpmodel示例應用 325
19.7 jsonpstreaming示例應用 326
19.7.1 jsonpstreaming示例應用的組成 326
19.7.2 運行jsonpstreaming示例應用 326
19.8 關於JSON處理Java API的更多信息 327
第20章 Web應用國際化和本地化 328
20.1 Java平颱本地化類 328
20.2 提供本地化消息和標簽 329
20.2.1 建立本地化環境 329
20.2.2 設置資源包 330
20.2.3 獲取本地化環消息 331
20.3 日期和數字格式化 331
20.4 字符集和編碼 332
20.4.1 字符集 332
20.4.2 字符編碼 332
第四部分 bean驗證
第21章 bean驗證介紹 334
21.1 使用bean驗證約束 334
21.2 驗證Null和空串 336
21.3 驗證構造函數和方法 337
21.3.1 跨參數約束 338
21.3.2 標識違反參數約束 338
21.3.3 為方法返迴值增加約束 338
21.4 關於bean驗證的更多信息 339
第22章 bean驗證:高級主題 340
22.1 創建定製約束 340
22.1.1 使用內置約束建立一個新約束 340
22.1.2 去除約束目標的二義性 341
22.2 定製驗證器消息 342
22.2.1 ValidationMessages資源包 342
22.3 組閤約束 342
22.3.1 定製組驗證順序 342
22.4 在類型層次體係中使用方法約束 343
22.4.1 在類型層次體係中使用方法約束的規則 344
第五部分 Java EE的上下文和依賴注入
第23章 Java EE的上下文和依賴注入介紹 346
23.1 入門 347
23.2 CDI概述 348
23.3 關於bean 349
23.4 關於CDI托管bean 350
23.5 bean作為可注入的對象 350
23.6 使用限定符 351
23.7 注入bean 352
23.8 使用作用域 352
23.9 提供bean EL名 354
23.10 增加設置和獲取方法 354
23.11 Facelets頁麵中使用托管bean 355
23.12 使用生成器方法注入對象 355
23.13 配置CDI應用 356
23.14 對CDI托管bean使用@Post-Construct和@PreDestroy注解 356
23.14.1 使用@PostConstruct 初始化托管bean 356
23.14.2 使用@PreDestroy注解準備撤銷托管bean 357
23.15 關於CDI的更多信息 357
第24章 運行基本上下文和依賴注入示例 358
24.1 simplegreeting CDI示例 358
24.1.1 simplegreeting源文件 358
24.1.2 Facelets模闆和頁麵 359
24.1.3 運行simplegreeting示例 360
24.2 guessnumber-cdi CDI示例 361
24.2.1 guessnumber-cdi源文件 362
24.2.2 Facelets頁麵 366
24.2.3 運行guessnumber-CDI示例 367
第25章 Java EE的上下文和依賴注入:高級主題 369
25.1 打包CDI應用 369
25.2 CDI應用中使用替代對象 370
25.2.1 使用特殊化 371
25.3 CDI應用中使用生成器方法、生成器字段和清除器方法 372
25.3.1 使用生成器方法 372
25.3.2 使用生成器字段生成資源 373
25.3.3 使用清除器方法 373
25.4 CDI應用中使用預定義bean 374
25.5 CDI應用中使用事件 375
25.5.1 定義事件 375
25.5.2 使用觀察者方法處理事件 376
25.5.3 觸發事件 377
25.6 CDI應用中使用攔截器 378
25.7 CDI應用中使用裝飾器 379
25.8 CDI應用中使用構造型 380
第26章 運行高級上下文和依賴注入示例 382
26.1 encoder示例:使用替代對象 382
26.1.1 Coder接口和實現 383
26.1.2 encoder Facelets頁麵和托管bean 383
26.1.3 運行encoder示例 385
26.2 producermethods示例:使用生成器方法選擇bean實現 387
26.2.1 producermethods示例的組成 387
26.2.2 運行producermethods示例 388
26.3 producerfields示例:使用生成器字段生成資源 389
26.3.1 producerfields示例的生成器字段 389
26.3.2 producerfields實體和會話bean 391
26.3.3 producerfields Facelets頁麵和托管bean 392
26.3.4 運行producerfields示例 394
26.4 billpayment示例:使用事件和攔截器 395
26.4.1 PaymentEvent事件類 395
26.4.2 PaymentHandler事件監聽器 396
26.4.3 billpayment Facelets頁麵和托管bean 396
26.4.4 LoggedInterceptor攔截器類 399
26.4.5 運行billpayment示例 400
26.5 decorators示例:裝飾bean 401
26.5.1 decorators示例的組成 401
26.5.2 運行decorators示例 402
第六部分 Web服務
第27章 Web服務介紹 406
27.1 什麼是Web服務 406
27.2 Web服務類型 406
27.2.1 大 Web服務 407
27.2.2 RESTful Web服務 407
27.3 確定使用何種類型的Web服務 408
第28章 用JAX-WS構建Web服務 409
28.1 使用JAX-WS創建一個簡單的Web服務和客戶端 410
28.1.1 JAX-WS端點的需求 411
28.1.2 編寫服務端點實現類 411
28.1.3 構建、打包和部署服務 412
28.1.4 測試Web服務端點的方法 412
28.1.5 一個簡單的JAX-WS應用客戶端 413
28.1.6 一個簡單的JAX-WS Web客戶端 414
28.2 JAX-WS支持的類型 417
28.2.1 模式-Java映射 417
28.2.2 Java-模式映射 418
28.3 Web服務互操作性和JAX-WS 419
28.4 關於JAX-WS的更多信息 419
第29章 用JAX-RS構建RESTful Web服務 420
29.1 什麼是RESTful Web服務 420
29.2 創建RESTful根資源類 421
29.2.1 用JAX-RS開發RESTful Web服務 421
29.2.2 JAX-RS應用概覽 422
29.2.3 @Path注解和URI路徑模闆 424
29.2.4 響應HTTP方法和請求 425
29.2.5 使用@Consumes和@Produces定製請求和響應 428
29.2.6 抽取請求參數 430
29.2.7 配置JAX-RS應用 433
29.3 JAX-RS示例應用 434
29.3.1 創建一個簡單的RESTful Web服務 434
29.3.2 rsvp示例應用 435
29.3.3 真實示例 438
29.4 關於JAX-RS的更多信息 438
第30章 用JAX-RS客戶端API訪問REST資源 439
30.1 客戶端API概述 439
30.1.1 使用客戶端API創建一個基本的客戶端請求 439
30.2 JAX-RS示例應用中使用客戶端API 442
30.2.1 rsvp示例應用中的客戶端API 442
30.2.2 customer示例應用中的客戶端API 443
30.3 客戶端API的高級特性 445
30.3.1 配置客戶端請求 445
30.3.2 客戶端API中的異步調用 447
第31章 JAX-RS:高級主題與示例 449
31.1 資源類字段和bean屬性的注解 449
31.1.1 抽取路徑參數 450
31.1.2 抽取查詢參數 450
31.1.3 抽取錶單數據 451
31.1.4 抽取請求或響應的Java類型 451
31.2 用bean驗證來驗證資源數據 452
31.2.1 對資源方法使用約束注解 452
31.2.2 驗證實體數據 453
31.2.3 驗證異常處理和響應碼 455
31.3 子資源和運行時資源解析 455
31.3.1 子資源方法 455
31.3.2 子資源定位符 456
31.4 JAX-RS與EJB技術和CDI集成 457
31.5 條件HTTP請求 458
31.6 運行時內容協商 459
31.7 結閤使用JAX-RS和JAXB 460
31.7.1 使用Java對象為數據建模 462
31.7.2 從現有的XML模式定義開始 463
31.7.3 結閤JAX-RS和JAXB使用JSON 465
31.8 customer示例應用 466
31.8.1 customer示例應用概述 466
31.8.2 Customer和Address實體類 466
31.8.3 CustomerService類 469
31.8.4 CustomerBean類中使用JAX-RS客戶端 470
31.8.5 運行customer示例 472
· · · · · · (
收起)