EJB3.0 Beehive开发客户反馈系统

文章作者 100test 发表时间 2007:09:29 12:42:32
来源 100Test.Com百考试题网


  设计目标

  客户反馈系统作为公司与客户交流的平台,几乎为所有的企业所运用,最近,公司让我负责客户反馈系统的开发。由于,公司与国外客户的业务需要,该系统必须实现中,英,日三国语言的切换(国际化要求)。在接到任务之后,我便决定尝试使用目前开源社区比较流行的Apache Beehive(蜂巢)和下一代EJB,EJB3.0等技术来实现这个系统。


  开发环境

  选择平台,开发工具

  为了支持EJB3.0和Beehive,我们选择JBoss4.0.3应用服务器作为运行平台,它也是目前唯一提供EJB3.0容器的应用服务器。

  下载和安装JBoss4.0.3服务器及EJB3.0容器http://www.jboss.com/downloads/index

  数据库选用 MySQL5.0,由于我们没有针对特定数据库编码,因此数据库的移植也是非常方便的。
  下载MySql5.0 http://dev.mysql.com/downloads/mysql/5.0.html
  由于要开发EJB3.0和Beehive应用,选择Ecllipse这个IDE,

  下载Ecllipse SDK 3.1 http://eclipse.org/downloads/

  为了支持EJB3.0的开发,下载Jboss Ecllipse IDE这个Ecllipse插件
http://www.jboss.com/products/jbosside/downloads
  Pollinate是另一个Ecllipse插件,它也是目前唯一支持Beehive项目开发的IDE,虽然它远不及WebLogic 的 Workshop 如此强大,但在拥有一定BEA Workshop 开发经验的前提下,使用pollinate并不会有太大的问题。

  下载并安装Pollinate插件 http://www.eclipse.org/pollinate/
  Beehive简介

  在系统设计之前,选择一个优秀的系统框架是非常重要的。Beehive是Apahce的开放源代码项目。自2004年5月份,BEA系统公司宣布将WebLogic Platform中一系列居于核心地位的运行时框架(Runtime Framework)开放源代码并贡献给Apache项目后,这个Beehive的框架就一直成为开源社区关注的焦点之一。
  Beehive的目标是使J2EE开发更加简单,它是一个可扩展的Java应用程序框架,该框架具有针对Web服务,Web应用程序和资源访问的集成元数据驱动的编程模型。该框架利用了JDK1.5的最新创新,特别是JSR175元数据注解,可以减少开发人员的编码,从而提高开发效率。目前,Beehive项目包括Java控件,NetUI,Java Web服务元数据,能够帮助Java开发人员开发出基于组件和标准的JAVA应用。
  EJB3.0简介

  在客户反馈系统中,尝试使用最新的EJB3.0来实现持久层的开发。众所周知,由于EJB的复杂性使其在J2EE架构中的表现一直不是很好。EJB大概是J2EE架构中唯一一个没有兑现其能够简单开发并提高生产力的组件。而EJB3.0规范在这方面作出努力以减轻其开发的复杂性。EJB3.0取消或最小化了很多(以前这些是必须实现)回调方法的实现,并且降低了实体Bean及O/R映射模型的复杂性,从而大大减轻了开发人员进行底层开发的工作量。
  EJB3.0中两个重要的改进分别是:使用了Java5中的元数据注解功能和基于Hibernate的O/R映射模型, 在EJB3.0中,任何类型的企业级Bean只是一个加了适当注释的简单Java对象(POJO)。注释可以用于定义bean的业务接口、O/R映射信息、资源引用信息,效果与在EJB2.1中定义部署描述符和接口是一样的。在EJB3.0中部署描述符不再是必须的了;home接口也没有了,你也不必实现业务接口(容器可以为你完成这些事情)。
  EJB3.0的配置

  JBoss EJB3.0建立在Hibernate 3.0之上。配置数据源,实体bean需要创建hibernate.   Properties配置文件。在EJB3.0部署包下有一个默认的hibernate配置文件ejb3.deployer/META-INF/hibernate.properties。修改这个文件,使实体Bean使用MySql数据源,修改后的配置文件如下:

hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
hibernate.connection.release_mode=after_statement
hibernate.transaction.flush_before_completion=false
hibernate.transaction.auto_close_session=false
hibernate.query.factory_class=org.hibernate.hql.ast.ASTQueryTranslatorFactory
  在SessionFactory创建后,自动输出schema创建语句到数据库,使用0update可以创建和更新原来的schema,而不影响原来数据库中的数据

hibernate.hbm2ddl.auto=0update
#hibernate.hbm2ddl.auto=create
hibernate.show_sql =true
hibernate.cache.provider_class=org.hibernate.cache.HashtableCacheProvider
# Clustered cache with TreeCache
#hibernate.cache.provider_class=org.jboss.ejb3.entity.TreeCacheProviderHook
#hibernate.treecache.mbean.object_name=jboss.cache:service=EJB3EntityTreeCache
  修改蓝色字体部分使其默认数据源改为MySqlDS(JBOSS的数据源配置参考JBOSS相关文档)。

hibernate.connection.datasource=java:/MySqlDS
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.jndi.java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
hibernate.jndi.java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces


相关文章


KodoEJB:实现类和类之间的关联关系
EJB3.0新规范概览及其未来发展
KodoEJB:符合EJB3规范的持久层框架
Java中用Robot类控制鼠标和键盘的方法
EJB3.0 Beehive开发客户反馈系统
使用OptimizeIT进行Java内存泄露的检测
Java关于克隆与“冷藏”和“解冻”方法
FCKeditor编辑器在JAVA中的使用与配置
ring文件资源操作和Web相关工具类盘点
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛