快速业务通道

在Weblogic 8.1上配置Hibernate 3.0 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

在Weblogic 8.1上配置Hibernate 3.0

时间:2011-02-15

下面是在WebLogic 8.1上配置Hibernate的具体步骤:

◆首先要创建一个域。我创建了一个WebLogic Workshop(WLW)域,因为我打算使用WLW来创建和实现应用程序。

◆将hibernate...\lib\antlr-2.7.5H3.jar添加到PRE_CLASSPATH,或者在hibernate.cfg.xml文件中将query.factory_class属性设为user 2.x''s query factory。

◆WLW域还启动了一个PointBase数据库实例。我将使用这个内置实例。我创建了一个新的用户和模式。并为该模式填充了一些示例数据。

◆在服务器实例中配置连接池和数据源。

◆创建应用程序。我打算使用WebLogic Workshop创建。

◆应该将库(jar文件)(它们是成功运行Hibernate所必需的)放在哪里呢?放在应用程序的APP-INF/lib文件夹中。库包括hibernate.jar和附加的第三方库。引用Hibernate Reference的表格3-1。

◆在WLW中创建一个Java项目。该Java项目包括映射到数据库的域类。WLW编译该项目,并将生成的jar文件放到APP-INF/lib目录下。在Java项目中编码域类。创建Hibernate映射文件和Hibernate配置文件。此外,从Hibernate Reference复制实现,创建HibenateUtil类。Hibernate配置文件包括数据源的JNDI名。

◆创建一个EJB对象(例如,一个模块)。该项目包含了会话bean。编写一个操纵域类的会话bean。

◆创建一个Web或Web Service项目(例如,一个模块)。该项目包含了可互操作性地测试会话bean的组件。

完整、有效、自包含的示例应用程序在此。其中包括了模式和所有的Hibernate配置文件。

我在上面描述了在WebLogic 8.1上配置Hibernate 3.0的具体步骤。下面将介绍高级配置,其中Hibernate使用了WebLogic的Java命名和目录接口(Java Naming and Directory Interface,JNDI)、Java事务API(Java Transaction API,JTA)、Java连接器架构(Java Connector Architecture,JCA)和Java管理扩展(Java Management extension,JMX)实现。

我们先从JNDI开始。通过在hibernate.cfg.xml文件中命名SessionFactory,Hibernate使SessionFactory在JNDI中可用。呀!这在WebLogic中不起作用。正如此处所描述的,WebLogic JNDI与Hibernate配合得不是很好。有多个工作区。工作区手动将SessionFactory绑定到JNDI中,方法是通过WebLogic startup类或者启动servlet。但是,我不能使SessionFactory实例从JNDI安全返回。因此,折衷一下,为SessionFactory向HibernateUtil实用类添加一个存取器。

为了配置Hibernate使用JTA,我在hibernate.cfg.xml文件中配置了transaction.factory_class。有两个选项:org.hibernate.transaction.JTATransactionFactory和org.hibernate.transaction.CMTTransactionFactory。说明文档建议,对Bean托管事务界定(Bean Managed Transaction Demarcation,BMTD)bean使用JTATransactionFactory,而对容器托管事务界定(Container Managed Transaction Demarcation,CMTD)bean使用CMTTransactionFactory。

JTATransactionFactory似乎更通用些,它既支持BMTD bean又支持CMTD bean。因此,我配置的是JTATransactionFactory。此外,为了以特定于容器的方式查找事务,我在hibernate.cfg.xml文件中配置了transaction.manager_lookup_class。借助于这个配置,我完全不需要使用HibernateTransaction API。

对Hibernate的JCA支持是实验性质的,目前还没有全面应用于WebLogic。我可以设想,以后Hibernate会被打包为Resource ARchive(RAR)文件。Hibernate RAR文件作为资源适配器部署。适配器使Session在JNDI中可用。所有的配置元素都是通过资源适配器(xml文件)配置的,而不是通过hibernate.cfg.xml文件或采用其他方法配置。为什么在WebLogic中要配置Hibernate使用JCA?JCA旨在封装传统系统的连接、事务等等,并使它们在J2EE中可用。但是,由于Hibernate,传统的资源适配器的优势不能全面体现。一旦Hibernate被配置为资源适配器,特定的应用程序与Hibernate的耦合就被削弱了。多个不同的应用程序可以使用同一个Hibernate资源适配器。由于当前正在开发的EJB 3.0,这种配置在EJB的持久性API、Hibernate和Java数据对象(Java Data Object,JDO)的标准化方面的优势更为明显。从理论上讲,可以热部署(或重部署)适配器和改变持久性实现。

Hibernate附带JMX Management Bean (MBean)实现。我不知道如何使用JMX将Hibernate部署到WebLogic上。Hibernate和WebLogic使用JMX有什么好处?至少有两条。一条是部署和重部署。更重要的一条是,可以监控Hibernate和获得的统计信息。从JMX控制台进行运行时监控是所部署的应用程序运行良好的基本保障。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号