实录Seam示例程序Booking学习过程
实录Seam示例Booking学习过程
Seam的Booking示例程序 较为完整的展示了Seam构建Web应用的主要方面,以下将学习理解过程简单记录,以备查考。
我的运行环境是Tomcat6.0.14 + EmeddedJBoss,该环境的准备 请参考我的上一篇Blog《在tomcat中使用EmeddedJBoss
》。
以下我将以%tomcat%
指代tomcat的安装位置,以%
seam%
指代Seam发布包解压目录的位置,以%booking%
指代示例程序;
1、构建/部署
首先,在%seam%目录下build.properties文件中设置tomcat的安装位置,以下将用%tomcat%来指代;
第二,在%seam%\examples\booking目录下执行ant tomcat.deploy
(注意:Seam指南文档中说的是deploy.tomcat
,其实应该是 tomcat.deploy
),当然前提是你正确的配置了Ant;
第三,Ant任务执行成功后 会发布war文件到%tomcat%\webapps下。此时直接部署还缺少以下jar文件,需要手动copy:commons-digester-1.6.jar
、
richfaces-api-3.1.1-SNAPSHOT.jar
、richfaces-impl-3.1.1-SNAPSHOT.jar
、richfaces-ui-3.1.1-SNAPSHOT.jar
,这些文件都可以从%seam%\lib目录下找到,copy到%booking%\WEB_INF\lib目录下;
最后,至此 启动tomcat就会正确的部署该程序,通过http://localhost/booking/
就可以正确的访问所有功能。好,以下我们来解析booking程序中的各个方面。
2、配置解析
web.xml :不用多说了,其中配置了RichFaces 支持、Seam启动监听器、Seam Resource Servlet、Seam Filter、JSF Servlet以及facelets支持;
components.xml :内容如下,其中 其中各配置项的功能如注释所示,都非常明确,没有什么需要特别说明的。
booking-ds.xml :JBoss的数据库连接池配置文件,该文件定义了数据源及其JNDI名称。数据库使用了hsqldb的进程内模式。EmbeddedJBoss扫描到该文件后自动部署,其中bookingDatasource名称将在persistence.xml中引用。
persistence.xml :该文件是JPA的标准配置文件 其中引用前一文件配置的数据源声明持久化单元。JPA是EJB的一部分 所以JBoss会扫描到该文件 并完成部署。
ejb-jar.xml :该文件是EJB的标准配置文件,在此其声明了EJB拦截,此处的拦截对Seam至为重要 因为就是在该拦截中完成了对EJB的“注射 ”。
pages.xml :该页面定义了页面导航规则 及 未登录异常捕获时的重定向。
OK,配置基本上就是这些,接下来将以功能使用为线索 查看所有源代码部分。