把seam和例子中的H2数据库备好,进入解压后的seam目录。你能在里面找到seam 和 seam.bat两个脚本。
先看看seam脚本能做什么吧!在控制台里敲 seam help,这个命令会显示seam-gen的简介,还有一长串他所支持的命令。
seam-gen的命令可以分为两类,第一组命令是用来构建、管理和部署seam-gen项目的。
命令 |
介绍 |
setup | 生成用于创建项目的seam-gen/build.properties,文件中的key-value对是你给这个命令提出的问题的答案。这些信息包括,项目所在的目录、数据库连接、JBoss AS所在的目录。在回答完问题后,你也可以手工修改seam-gen/build.properties |
create-project | 创建seam项目,包含构建脚本,依赖类库,以及基本的seam组件配置。根据seam-gen/build. properties文件中的值进行个性化设置。 |
update-project | 更新项目的依赖类库至最新版 |
delete-project | 卸载并删除生成的项目 |
deploy | 把项目包(WAR或EAR)及数据源配置文件部署到JBoss AS中 |
undeploy | 卸载部署的项目包及数据源配置文件 |
explode | 部署项目文件(非打包方式的WAR和EAR项目包)和数据源配置文件到JBoss AS中。并执行增量式热部署,不包括EJB组件及JPA实体类。 |
restart | 将之前部署的项目(非打包方式)重启,不是重启JBoss AS |
unexplode | 卸载项目(非打包方式)文件和数据源配置 |
archive | 创建项目包(WAR或EAR)并把他放到项目根目录下的dist文件夹下。 |
clean | 移除生成项目中的已编译类及中间目录。 |
test | 运行测试 |
settings | 显示seam-gen/build.properties中的设置 |
reset | 重置seam-gen/build.properties中的设置 |
第二组命令,用于在被seam管理的项目中生成代码。
命令 |
介绍 |
|
new-action | 创建带有seam/EJB3注解的java接口及stateless session bean。同时创建模拟JSF request/response的测试用例及相关的TestNG配置 | |
new-form |
|
|
new-conversation | 创建带有seam/EJB3注解的java接口及stateful session bean,添加带有@Begin和@End的句柄方法。 | |
new-entity | 创建带有seam/EJB3注解的entity bean |
|
new-query | 创建管理定制JPA查询的EntityQuery子类及显示查询结果的view模板 | |
generate | 产生映射到数据库schema的entity class及对其进行CRUD操作的用户界面 | |
generate-ui | 产生已有JPA entities的CRUD用户界面 | |
generate-model | 产生映射到数据库schema的JPA entity类 |
没必要现在就弄懂每个命令,这两个表格只是给你介绍下seam-gen的能力,以后你会有机会用这些命令来完成任务的。
下面这个列表指导你创建Open 18程序原型所需执行的命令步骤:
命令 | 目的 |
seam setup | 输入关于Open 18程序及H2数据库的相关信息 |
seam create-project | 命令seam-gen创建open 18程序 |
seam generate | 创建管理Open 18数据库表的CRUD程序 |
seam explode | 部署项目文件(非打包方式的WAR和EAR项目包)和数据源配置文件到JBoss AS中 |
执行完这些命令后,你就有了一个可以展示给老板的程序原型。当他要你修改的时候,你也不会无言以对。修改seam-gen生成的程序简单直接,本章的后续部分会告诉你如何进入seam-gen已经为你准备好的各种开发环境及部署环境。不过,现在你还是要先告诉seam-gen你想生成一个什么样的程序。
书接上段,下面就来讲讲第一个要运行的seam setup命令。前面已经提过了,这个命令会问你一系列的问题,以便决定该怎么给你创建个程序。需求分析阶段!他提的问题由三部分组成,问题;默认答案;有效答案。你就逐一回答敲回车就成了,这是唯一需要你做的工作,回答完这些问题,剩下的事就是seam的了,有没有点当甲方的感觉?
seam-gen的主要目的就是把你的答案保存到seam-gen/build.properties中去。如果你觉得某个回答不妥,你随时都可以重新来一次,以前的答案都变成了默认答案,不用改的敲回车接受就行了。如果你不想用这个向导,也可以自己手工编辑seam-gen/build.properties文件。
注意下WAR与EAR的区别,还有就是你可以试试ICEFaces。
除了处理seam-gen/build.properties,setup命令还负责把JDBC 驱动copy到${jboss.home}/server/default/lib中,以便定义JCA数据源,建立到数据库的连接。
setup仅仅是在做准备工作,要把seam的项目模板转变为真正的应用程序,还要执行seam create-project。执行完这个命令,seam会在你的Java工作目录下创建一个新项目,自带一个可以编译、测试、打包及部署程序的Ant build脚本。以此为基础,开始开发你的seam程序吧!
插播广告!JBoss Tools可以给你一个GUI的向导,你不用到DOS窗口里去执行脚本了。
项目的脚手架搭好了,让我们继续前进!先开始对数据库表进行反向工程,生成一些代码出来看看。这就轮到seam generate命令登场了。它会产生映射到数据库schema的entity class及对其进行CRUD操作的用户界面,view层是由Facelets 模板组成的,而作为后备的action 类是JavaBean。
seam generate的输出信息非常丰富,因为Hibernate非常尊重我们的知情权,所以把他做反向工程的每一步都像我们做了报告。
项目原型已经生成了!但还不是部署的时候,如果你按generate最后的建议,运行 seam restart命令,你会发现,无论JBoss AS 运行与否,http://localhost:8080/open18返回的都是404错误!这里还有个问题,欲知后事如何,且听下回分解!