标题：JRuby实战
图书信息
书名： JRuby实战  　　书号： 978-7-115-18375-0/TP  
原书名： Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java  
原出版社： Apress  
丛书名： 图灵程序设计丛书   作者： Ola Bini  
译者： 丁雪丰  
出版日期： 2008-07-10  
语种： 简体中文  
开本： 16开  
页数： 284
摘要
本书通过4 个由浅入深的项目，结合Rails 向读者全面介绍了JRuby 。内容包括：如何在Ruby 中调用Java 代码，如何使用Java 库，如何实现并访问EJB，如何操作JMS，如何在Java 中调用由Ruby 实现的Java 类和接口等。同时，书中给出的代码都很有实用价值，只需稍做加工就能放进真正的项目中发挥
作用。
本书适合Web 开发人员阅读和参考。
目录
第1章　引言　1
1.1　背景　2
1.1.1　Ruby简史　2
1.1.2　Rails简史　3
1.1.3　JRuby简史　3
1.2　为什么选择JRuby on Rails　4
1.3　全书概述　5
1.4　小结　7
第2章　准备工作　8
2.1　安装JRuby　8
2.1.1　Java　8
2.1.2　二进制JRuby　9
2.1.3　从源代码安装　9
2.1.4　测试安装　10
2.2　RubyGems　11
2.2.1　Rake　12
2.2.2　Rails　13
2.2.3　AR-JDBC　13
2.2.4　BlueCloth和RedCloth　13
2.2.5　Facets　14
2.2.6　Mongrel　14
2.2.7　Mongrel JCluster　14
2.3　安装数据库　14
2.4　小结　16
项目1　商店（Shoplet）
第3章　Rails入门　18
3.1　Rails应用程序的结构　18
3.1.1　模型　19
3.1.2　控制器　20
3.1.3　视图　21
3.2　Rails的其他部分　24
3.2.1　ActiveSupport　24
3.2.2　ActionMailer　24
3.2.3　ActionWebService　24
3.2.4　ActiveResource　25
3.3　Rails辅助脚本　25
3.3.1　about　25
3.3.2　breakpointer　25
3.3.3　console　25
3.3.4　destroy　26
3.3.5　generate　26
3.3.6　plugin　26
3.3.7　runner　26
3.3.8　server　26
3.4　测试　28
3.5　插件　30
3.5.1　Act As Taggable　30
3.5.2　CAS过滤器　30
3.5.3　全球化插件　31
3.5.4　Rails引擎　31
3.6　小结　31
第4章　商店管理　32
4.1　创建一个新的Rails应用程序　32
4.2　运行Mongrel　35
4.3　第一个模型　35
4.3.1　ProductType　35
4.3.2　Product　37
4.3.3　ProductCategory　38
4.3.4　运行迁移　40
4.3.5　验证　40
4.4　产品单元测试　41
4.5　为产品建立scaffold　44
4.5.1　Ajax　48
4.5.2　让界面更漂亮　50
4.6　更多模型　52
4.6.1　用户管理　55
4.6.2　订单处理　56
4.7　添加身份验证　59
4.8　功能测试　61
4.9　小结　64
第5章　数据库驱动的商店　65
5.1　浏览产品　65
5.2　添加购物车　69
5.2.1　查看购物车　70
5.2.2　结账　71
5.3　验证与测试　73
5.4　ActiveRecord和JDBC　77
5.4.1　支持的数据库　78
5.4.2　如何支持新的数据库　81
5.5　小结　82
项目2　内容管理系统（CoMpoSe）
第6章　Java集成　84
6.1　使用Java资源　84
6.1.1　类　85
6.1.2　基本类型　88
6.1.3　数组　88
6.2　扩展Java　89
6.2.1　接口　90
6.2.2　类　91
6.3　Java集合类　92
6.4　陷阱　94
6.5　在Java中使用Ruby　94
6.5.1　JRuby运行时　95
6.5.2　BSF　96
6.5.3　JSR223——Java Scripting　97
6.6　小结　97
第7章　一个Rails的CMS　98
7.1　数据库　98
7.2　模型　102
7.3　布局　103
7.4　管理界面　106
7.4.1　用户　106
7.4.2　路径　107
7.4.3　样式　109
7.4.4　布局　111
7.4.5　文章　115
7.5　安全　118
7.6　小结　119
第8章　内容呈现　120
8.1　XML内容呈现　120
8.1.1　Ruby XML　121
8.1.2　Java DOM解析　123
8.1.3　Java SAX解析　124
8.1.4　Java DOM和XSLT　126
8.1.5　其他Java API　127
8.2　其他呈现内容的途径　127
8.2.1　RedCloth（Textile）　127
8.2.2　BlueCloth（Markdown）　129
8.2.3　ERb　130
8.2.4　YAML　130
8.2.5　其他解决方案　132
8.3　完成CoMpoSe　132
8.3.1　呈现引擎　132
8.3.2　内容　136
8.3.3　预览　137
8.4　小结　139
项目3　管理系统（BigBrother）
第9章　JRuby与EJB　142
9.1　序列数据库　143
9.2　JRuby序列引擎　145
9.3　JRuby bean封装器　149
9.4　小结　153
第10章　基于EJB的Rails应用程序　155
10.1　重温EJB客户端　156
10.2　创建应用程序　157
10.3　创建一个小的序列支持库　161
10.4　序列控制器及相关视图　162
10.5　服务器端JMX　165
10.6　管理Rails的简单JMX　166
10.7　小结　168
第11章　部署　170
11.1　部署Ruby on Rails　170
11.1.1　WEBrick　171
11.1.2　CGI　171
11.1.3　FastCGI　171
11.1.4　Mongrel　172
11.1.5　Mongrel集群　172
11.2　部署JRuby on Rails　172
11.2.1　WEBrick　173
11.2.2　CGI　173
11.2.3　Mongrel　173
11.2.4　GoldSpike（Rails Integration）　173
11.2.5　Grizzly　173
11.2.6　Rails-asyncweb　174
11.2.7　Retty　174
11.3　部署JRuby on Rails的最佳实践　174
11.3.1　JVM Mongrel集群　174
11.3.2　用Java制作WAR　177
11.4　小结　182
项目4　图书馆系统（LibLib）
第12章　JRuby与Web服务　184
12.1　LibLib系统　184
12.2　Amazon Web Services　185
12.3　SOAP4R　186
12.3.1　动态生成　186
12.3.2　使用桩代码　187
12.4　Java中的SOAP　188
12.4.1　动态生成　189
12.4.2　使用桩代码　190
12.5　创建小型图书支持库　191
12.6　小结　194
第13章　JRuby与面向消息系统　195
13.1　什么是MOM　195
13.2　遗留系统　197
13.2.1　添加图书馆　197
13.2.2　移除图书馆　198
13.2.3　获取图书馆名称　198
13.2.4　添加图书介绍　198
13.2.5　移除图书介绍　198
13.2.6　获取图书介绍　198
13.2.7　添加图书实例　199
13.2.8　移除图书实例　199
13.2.9　出借图书实例　199
13.2.10　归还图书实例　199
13.2.11　检索　199
13.3　ActiveMessaging　200
13.4　JRuby和MDB　201
13.5　与遗留系统交互的库　202
13.6　Rails间的通信　211
13.7　小结　215
第14章　LibLib Rails应用程序　217
14.1　数据库　217
14.2　部署多个Rails实例　219
14.3　创建模型　221
14.4　视图和控制器　221
14.4.1　布局　222
14.4.2　检索图书信息　225
14.4.3　身份验证　229
14.4.4　借阅者和图书管理员　233
14.4.5　从Amazon导入数据　238
14.5　小结　239
第15章　尾声：下一步该做什么　241
15.1　JRuby-extras　241
15.1.1　为JRuby-extras做贡献　241
15.1.2　当前的项目　241
15.2　为JRuby做贡献　244
15.3　潜在项目　244
15.3.1　使用Lucene进行数据库索引　244
15.3.2　用Hibernate替换ActiveRecord　245
15.3.3　创建新的ActiveRecord-JDBC适配器　245
15.4　小结　247
附录A　Java程序员眼中的Ruby　249
A.1　核心Ruby　249
A1.1　命名　249
A.1.2　核心类型　250
A.2　类和模块　254
A.2.1　定义方法　255
A.2.2　包含和扩展　256
A.2.3　单例类　257
A.3　块　257
A.4　元编程　259
A.4.1　自省　259
A.4.2　send　260
A.4.3　method_missing、const_missing　260
A.4.4　define_method　261
A.4.5　Class.new和Module.new　261
A.4.6　eval及相关内容　261
A.5　to_proc的技巧　262
附录B　JRuby参考　263
B.1  类和接口　263
B.1.1  引用一个Java类或接口　263
B.1.2  使用类　264
B.1.3  扩展和实现　264
B.2  基本类型数组　265
B.3  对Java类的扩展　266
B.3.1  java.lang.Runnable　266
B.3.2  java.util.Map　266
B.3.3  java.lang.Comparable　266
B.3.4  java.util.Collection　266
B.3.5  java.util.List　267
B.4  JRuby模块　267
B.4.1  runtime　267
B.4.2  parse　267
B.4.3  compile　267
B.4.4  reference　268
B.5  require　268
附录C　资源　269
C.1  Ruby和Rails　269
C.1.1  Ruby程序设计语言　269
C.1.2  Ruby-talk邮件列表　269
C.1.3  Ruby-core邮件列表　269
C.1.4  Ruby on Rails　269
C.1.5  Rails-talk邮件列表　270
C.1.6  Rails-core邮件列表　270
C.1.7  松本行弘“Matz”的博客　270
C.1.8  O’Reilly Ruby　270
C.1.9  RubyInside　270
C.1.10  On Ruby　270
C.1.11  Loud Thinking　270
C.1.12  Riding Rails　270
C.1.13  Eigenclass　270
C.1.14  Polishing Ruby　271
C.1.15  Programming Ruby, Second Edition　271
C.1.16  The Ruby Way, Second Edition　271
C.1.17  Agile Web Development with Rails, Second Edition　271
C.2  JRuby　271
C.2.1  JRuby主页　271
C.2.2  JRuby Dev邮件列表　271
C.2.3  JRuby User邮件列表　271
C.2.4  #jruby IRC频道　272
C.2.5  JRuby-extras项目　272
C.2.6  JRuby JIRA　272
C.2.7  JRubyInside　272
C.2.8  Headius　272
C.2.9  Tom’s Ruminations　272
C.2.10  Ola Bini　272
C.2.11  Nick Sieger　272
C.3  其他　273
C.3.1  MySQL　273
C.3.2  ActiveMessaging　273
C.3.3  Hitta　273
C.3.4  Ferret　273
C.3.5  GlassFish　273