为项目开发做嫁衣――Seam项目开发环境的搭建

为项目开发做嫁衣――Seam项目开发环境的搭建
2010年08月15日
  正如SSH架构是J2EE的一个轻量级开发框架一样,Seam可以看作是为Java EE量身定制的轻量级框架,它为企业级Web应用中的组件提供一个一致的、易于理解发,提高开发效率和应用扩展的编程模型,它提供一个同一标准的组件模型,能够完美集成JSF/EJB3和JPA。Seam的目标是为了解决JSF和EJB3中的一些设计缺陷。Seam的许多核心特性被采纳为Java EE标准,例如JSF 2.0和WebBeans,JSF 2.0将Seam和A4J等框架引入到规范。Seam与Spring框架的开发理念不同,Seam为被它集成的所有框架提供了一个统一的组件模型,开发人员可以使用统一的Seam组件,而不需要学习每个独立框架的组件管理APIs。本书将通过一个项目案例详细介绍如何应用Seam框架以及JSF2、Richfaces4和其他框架来构建Web应用程序。
  如果应用程序使用EJB3,我们需要使用一个框架,使JSF2页面与EJB3的工作更加容易,这个框架就是Seam,Seam允许在程序中通过注解和EL表达式来访问EJB3。此外,Seam也提供了一些其他实用的功能,以加快您的JSF开发,例如,它可以生成的页面中执行CRUD(创建,检索,更新,和删除)操作而不需要我们编写这些业务对象代码。
  要学习Seam开发,必须先搭建一个符合以Seam作为开源中间件规范的Java EE开发环境。本章以实用为原则,介绍以JBoss为服务器为配置Java EE运行环境的方法及常用集成开发环境的介绍。
  Java EE应用以其稳定的性能、良好的开放性及严格的安全性,深受企业应用开发者的青睐。实际上,对于信息化要求较高的行业,如银行、电信、证券及电子商务等行业,都会选择使用Java EE作为企业的信息平台。对于一个企业而言,选择Java EE构建信息化平台,更体现了一种长远的规划,企业的信息化是不断整合的过程,Java EE应用提供的跨平台性、开放性及各种远程访问的技术,为异构系统的良好整合提供了保证。 JBoss的下载地址为http://www.jboss.org/jbossas/downloads,最新版本为6.0,JBOSS最新版本支持JSF 2以及为所有的层提供模型对象的集成验证的Bean validation,并且支持Servlet 3.0 和 JPA 2.0。笔者下载的是jboss-6.0.0.M2.zip安装包。直接解压缩jboss-6.0.0.M2.zip安装包即可完成安装,为了避免日后产生莫名的错误,解压缩的路径不要带有空格,如Program Files。
  设置完环境变量后。双击[jboss 安装目录]\bin\run.bat启动JBoss,查看控制台有没有Java 的例外抛出。如果没有例外并看到图1-1,表示安装JBoss成功。
  图1-1 JBoss控制台
  启动JBoss后,在浏览器地址栏中输入http://localhost:8080,弹出如图1-4所示的JBoss 的欢迎主页。
  图1-2 JBoss的欢迎主页
  如果在启动JBoss时出现错误,先检查安装文件下载是否完整,JBoss所用端口有没有被占用,如1099、1098 、8080、 8081等端口。如果要更改Jboss端口,则可找到[jboss 安装目录]\server\default\deploy\jbossweb.sar目录中的server.xml文件,找到该文件如下内容并修改其中的port的属性值:
   提示:如果下载的是JBoss 5版本,安装的是JDK是1.6的话,启动JBoss时会出现错误,这是由于JDK 5和JDK 6中,加入了一个"sun.lang.ClassLoader.allowArraySyntax"选项值,这个值默认的是true,但在JDK 6中改成了false,所以JBoss 5使用JDK 6启动会出现错误。 如果安装平台是Windows,打开run.bat文件,找到set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% 这一行,将这一行改为
  set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME%
  -Dsun.lang.ClassLoader.allowArraySyntax=true, JBoss 5就可以正常运行了。 安装完JBoss后,会创建如表1-1所示的目录结构。
  [b]表[/b]1-1 JBoss[b]目录结构 [/b][b]目录 [/b][b]描述 [/b]bin 存放启动和关闭JBoss 的脚本。 client 存放客户端与JBoss 通信所需的Java 库(JARs)。 docs/dtd 存放在JBoss 中使用的各种XML 文件的DTD。 server 存放各种JBoss 配置。每个配置必须放在不同的子目录。子目录的名字表示配置的名字。JBoss 包含3 个默认的配置:minimial,default 和all,在你安装时可以进行选择。 docs 存放配置的样本文件(数据库配置等)。 lib 存放一些JAR,JBoss 启动时加载,且被所有JBoss 配置共享。 server/all JBoss 的完全配置,启动所有服务,包括集群和IIOP。 server/default JBoss 的默认配置。在没有在JBoss 命令航中指定配置名称时使用。 server/default/conf 存放JBoss 的配置文件。 server/default /data 存放JBoss 的数据库文件。比如,嵌入的数据库,或者JBossMQ。 server/default /deploy JBoss 的热部署目录。放到这里的任何文件或目录会被JBoss 自动部署。EJB、WAR、EAR,甚至服务。 server/default/lib 存放一些JAR,JBoss 在启动特定配置时加载他们。 server/default/log 存放JBoss 的日志文件 server/default/tmp 存放JBoss 的临时文件。 在JBoss中部署应用包的过程比较简单。在每一个配置中,JBoss 不断的扫描一个特殊目录的变化,例如[jboss 安装目录]/server/config-name/deploy,此目录一般被称为"部署目录"其中config-name一般用default。
  可以把下列文件复制到此目录下:
  (1) 任何jar 库(其中的类将被自动添加到JBoss 的classpath 中)。
  (2) EJB JAR。
  (3) WAR (Web Appliction aRrchive)。
  (4) EAR (Enterprise Application aRchive)。
  (5) 包含JBoss MBean 定义的XML 文件。
  (6) 一个包含EJB JAR、WAR 或者EAR 的解压缩内容,并以.jar、.war 或者.ear 结尾的目录。
  如果要重新部署任何上述文件,用新版本的文件覆盖以前即可。JBoss 会根据比较文件的时间发现改变,然后部署新的文件。要重新部署一个目录,更新它的修改时间即可。 JBoss很好地支持WAR和EAR的热重部署,有些调用EJB 的Web 应用是直接发布在JBoss 集成环境下,在JBoss下发布Web 应用,需要把Web 应用打包成WAR或EAR 文件。最重要的是要对EAR部署还是WAR部署进行选择。EAR项目支持EJB 3并需要Java EE 5。而WAR包不支持EJB 3,但可在J2EE环境中部署。另外WAR也更较简单,便于理解。假若你已安装了EJB 3 profile,那就需要用EAR,否则,就只好用WAR。 本书涉及到的所有数据库操作的应用都以MySql数据库为基础,可以从http://dev.mysql.com/downloads/下载MySQL服务器安装软件包。如果下载的安装软件包在Zip文件中,需要先提取文件。笔者下载的安装包为mysql-5.0.18-win32.zip,安装前必须保证服务器中没有任何版本的mysql或mysql目录,双击下载的mysql 5.0.18 for windows的执行文件开始mysql5.0.18的安装。 Eclipse的下载地址为http://www.eclipse.org/downloads/,Eclipse官方为了方便开发者,在一个稳定的Eclipse SDK上预先打包各种插件,形成一个完整的开发包,这样就避免了每个开发者都需要下载各种各样的插件,免去不了麻烦。最新的Eclipse SDK 为3.5.2,在此基础上,Eclipse发行了一些适合于不同开发者的开发包,这些包都叫做Galileo,在本书的项目中,应用Eclipse IDE for Java EE Developers这个开发工具来开发应用程序,该开发工具构建在Eclipse SDK 3.5之上,主要用于开发Java EE和 Web应用,具体包括一个Java IDE,Java EE工具,JPA,,JSP,JSF,Mylyn和其他开发包。双击下载的安装文件eclipse-jee-galileo-SR2-win32.zip文件,直接解压缩eclipse-jee-galileo-SR2-win32.zip安装包即可完成安装,为了避免日后产生莫名的错误,解压缩的路径不要带有空格,如Program Files。 提示:如果在启动Eclipse时出现Could not reserve enough space for object heap和如图1.3所示的界面时,需要调整Eclipse的配置文件eclipse.ini中的参数值,在该文件中找到如下内容:
  --launcher.XXMaxPermSize 256m
  -vmargs
  -Dosgi.requiredJavaVersion=1.5
  -Xms40m
  -Xmx512m
  由于JVM初始分配的内存由-Xms参数来指定,它的默认是物理内存的1/64;JVM最大分配的内存由参数-Xmx指定,它的默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。另外JVM最大内存首先取决于实际的物理内存和操作系统,-Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。在实应用中,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件和其他应用软件占用了。
  所以,如果出现内容不够的情况就需要将内存的设置信息更改为内容够用的值,例如可以把eclipse.ini中的参数值修改为如下内容:
  -launcher.XXMaxPermSize 256m
  -vmargs
  -Dosgi.requiredJavaVersion=1.5
  -Xms40m
  -Xmx400m
  这样,eclipse正常启动了。如果还不能启动,可以继续减少-Xmx的值或XXMaxPermSize的值,因为二者的总和不能当前系统可用的物理内存容量大小。
  图1-3 启动Eclipse时出现的错误页面 JBossTools包含了JSF,Hibernate, Seam,jBPM等一系列的开发工具。JBossTools 最新版本是3.1,为了与Eclipse IDE for Java EE Developers集成,笔者下载的是3.1版本,3.1包含了JBossAS Server Adapter, Archives tools, SeamTools, Exadel提供的RichFaces Visual Page Editor(JSF可视化页面编辑器),Hibernate Tols,jBPM Designer,FreemarkerIDE等插件,下载地址为http://download.jboss.org/jbosstools/builds/releas e/3.1.0.GA/。这里下载的包为JBossTools-Update-3.1.0.v201003050540R-H56-GA.zip。下载好该工具包后,然后启动Eclipse,选择主菜单中的Help->Install New Software…子菜单,出现如图1-4所示软件更新界面窗口,然后在该窗口中选择Add按钮,弹出如图1-5所示对话框,在该对话框中,输入所在添加的插件名字,这里输入的名字为"seams",然后单击Archive按钮,选择上面所下载的JBossTools-Update-3.1.0.v201003050540R-H56-GA.zip,选择该文件后,单击OK按钮后,弹出如图1-6所示的JBossTools插件安装界面,这里选中其中的All JBoss Tools - 3.1.0.v201003050540R-H56-GA项目,然后单击Next按钮,根据安装向导完成插件的安装。
  图1-4 安装插件页面
  图1-5 选择插件安装包页面
  图1-6 选择所要安装的插件页面 Seam的下载地址为http://seamframework.org/Download,最新版本为2.2.1.CR1,笔者下载的包为jboss-seam-2.2.1.CR1.zip。
  下载完上述插件后,启动Eclipse,打开"Window->Preference"窗口,选择"JBoss Tools"项中的Web->Seam子项,在右边出现窗格的"Seam"中选择"Add"按钮后,弹出如图1-7所示的窗口,将前面步骤下载的jboss-seam-2.2.1.CR1.zip解压目录添加到Seam选项中,这里选择Seam的版本为2.2,然后保存配置。
  图1-7 设置Seam开发环境 在Eclipse的主菜单Window->Preferences->Java->Installed JREs项,出现如图1-8所示对话框。选择"Add"按钮,弹出如图1-9所示对话框,在对话框中选择Browse..按钮,选择所安装的JDK。
  图1-8 设置JDK
  图1-9 选择JDK
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值