netbeans6.8提供了对jsf2.0的完善支持。可以从实体类直接生成 EJB以及分页帮助类还有faclets页面,页面是4个,列表、添加、更新、显示其中一项。的确很方便。 然后再对这些页面组织一下就可以整合成一个应用了。额外的业务逻辑自己添加就可以了。
glassfish3,用了一下。和netbeans搭配起来就是好,自家的东西整合的就是完美。部署不比spring+hibernate+struts在tomcat下慢,大致相当。而且,没想到重新部署(就是改动类文件之后,IDE重新自动部署),glassfish只需3秒(甚至更少)就完成了自动部署,看来大家伙虽然个大些,但是功能完善。要是使用tomcat的话,(我以前发过文章,在netbeans下开发spring+(jpa)hibernate+struts,使用tomcat部署经常无故地发生故障,不是部署进度条跑个没完,就是点停止,总是停止不下来。改动类文件后,部署时间也是相当长的)。看来模块化的EJB已经很轻量级了。如果专门出个精简的EJB容器,配置精简的EJB3.1,那效果可想而知。通过向导,3个next,从控制器类到分页到页面都有了。这效率我想不用说了。要是SSH,一套流程下来,得建立好几个类,还得改下配置文件。
内存占用情况 ,运行起来后glassfish需要120M的内存,随着运行的时间增加,最高会到160M,但是一会就会垃圾回收到110多M。可见其效能还是蛮高的。
tomcat起来后内存一般50多M,然后就一路升到100M,一旦到120M就报内存溢出异常。因此glassfish需要比tomcat多花费大概70M的内存,可以说相当于运行了2个tomcat吧!
sun经过几年大综合,总算找到方向了。轻量级的EJB+JSF2.0,无需任何配置。建立完项目后,只需有实体类,实体类可以自己写,然后同步到数据库,或者反过来,从数据库表生成实体类。有了实体类,就可以生成EJB和JSF控制类,还有页面,相当方便了!我想这些成为现实之后,Java开发将变得异常容易。
在netbeans下建立JSF应用时,应该注意2点:
1 数据库里的数据是中文的话(好像废话,中国人肯定用中文的),应该自己写个字符编码过滤器,然后设置到web.xml中。
否则看不到显示数据。否则,还因为生成的代码是错的,其实是没有字符过滤器的缘故。
2 生成一大堆东西时,其中就有资源文件,这个资源文件会在向导里给出一个文本框让咱们填写其放置路径,不写的话默认在类路径下(默认包),可以写成:/resources/Bundle,那么就在resources包中了。然后IDE应该在faces-config.xml中生成该资源的路径,:
<?xml version='1.0' encoding='UTF-8'?>
<!-- =========== FULL CONFIGURATION FILE ================================== -->
<faces-config version="2.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd">
<application>
<resource-bundle>
<base-name>/resources/Bundle</base-name>
<var>bundle</var>
</resource-bundle>
</application>
</faces-config>
看红色部分,这就是所需的唯一配置。其他全部是注释。如果不使用国际化,只是使用中文,那么连这个也不需要了。
生成页面后,检查下这里,是否生成了。我使用默认包,它没给生成,结果页面里链接都没显示出来。正常情况下,页面里的链接都做好了。 比如会在首页(index.xhtml中),生成指向List的页面,然后List页面中有更新、查看、删除、新建的链接,所有这些功能全部可用。这些最基本的功能,只需点击几下鼠标就全有了。确实方便呀!
下面是官网的EE6的下载地址的链接:
http://java.sun.com/javaee/downloads/index.jsp?userOsIndex=6&userOsId=windows&userOsName=Windows
关于netbeans的使用特别是EJB、JSF的开发,netbeans官网有好多教程以及视频!