整合Hibernate3与JBOSS 3.2.X

医得何在

医得何在

2016-02-19 19:00

想要天天向上,就要懂得享受学习。图老师为大家推荐整合Hibernate3与JBOSS 3.2.X,精彩的内容需要你们用心的阅读。还在等什么快点来看看吧!

      前言――强强联合 在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。另外,JBoss应用服务器还具有许多优秀的特质。其一,它将具有革命性的JMX微内核服务作为其总线结构;其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。因此,它是高度模块化的和松耦合的。JBoss用户的积极反馈告诉我们,JBoss应用服务器是健壮的、高质量的,而且还具有良好的性能,2002年JBOSS获得了最佳应用服务器称号。

      Entity Bean的效率问题一直是J2EE开发中争议热点,近年来,Hibernate已经成为了事实上的持久化引擎。最新版的JBoss应用服务器已经将Hibernate集成为JMX MBean服务。这使得用户能够在应用服务器环境中直接使用Hibernate,而不管它是否处于J2EE上下文中。JBOSS 4.0中已经融入了Hibernate作为对象持久化的基础。

      对于大量采用JBOSS 3.2.x的用户,如何将Hibernate3加入到JBOSS中,以便使用JBOSS的连接池,支持JBOSS的BMT和CMT事务。下文将具体将Hibernate3加入到JBOSS 3.2.x的实现步骤。

      操作步骤

      JBOSS是以JMX为微内核的,各种功能和服务都有MBean提供,同时Hibernate提供了对MBean接口的实现org.hibernate.jmx.HibernateService.所以我们可以很方便的将持久化类打包成Mbean,部署到JBOSS中,以下是具体步骤:

      1.  将Hibernate3.jar及Hibernate用到的其他库文件一同拷贝至相应的JBOSS路径下(如:jboss-3.2.1serverdefaultlib)。

      2.  为了将我们编写的持久化治理类,加入到JBOSS中,我们必须将他封装成Mbean形式,以便被JMX加载。

      如同实现一般的Mbean一样需要编写jboss-service.XML文件,文件内容如下:

      server

      mbean code="org.hibernate.jmx.HibernateService"
  name="jboss.jca:service=HibernateFactory,name=HibernateFactory"

      dependsjboss.jca:service=RARDeployer/depends

      dependsjboss.jca:service=LocalTxCM,name=YourDataSource/depends

      attribute name="MapResources"mappings/Yourmapping.hbm.xml/attribute

      attribute name="JndiName"Java:/YourJNIDName/attribute

      attribute name="Datasource"YourDataSourceJNIDName /attribute

      attribute name="Dialect"org.hibernate.dialect.SQLServerDialect/attribute

      attribute name="TransactionStrategy"org.hibernate.transaction.JTATransactionFactory/attribute

      attribute name="TransactionManagerLookupStrategy"
  org.hibernate.transaction.JBossTransactionManagerLookup/attribute

      attribute name="UserTransactionName"UserTransaction/attribute

      /mbean

      /server

      注释:

      depends元素表示该Mbean依靠的服务,其中需要将YourDataSource替换实际应用中使用的数据源的名称。

      attribute元素对Mbean中的属性进行了配置,其中

      MapResource指定了持久化类的映射文件,将其替换为实际的映射文件名。

      JndiName指定的是所用到的数据源的JNDI名,将其替换为实际的数据源JNDI名称。

      Dialect同样根据使用的数库类型不同,进行相应的替换。

      TransactionStrategy,在你的Session Bean使用BMT的时候应该配置为org.hibernate.transaction.JTATransactionFactory,而当你的Session Bean使用CMT的时候应该配置为org.hibernate.transaction.CMTTransactionFactory.

      Mbean是一种jar文件(但其后缀不是jar,而是sar),以下是要创建的sar包的内部结构。

      YourClasses(持久化类及辅助类)

      mappings/ Yourmapping.hbm.xml

      META-INF/joss-service.xml

      3         在Session Bean中调用持久化对象

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

      …

      private javax.ejb.SessionContext _ctx;

      public void setSessionContext(javax.ejb.SessionContext ctx)

      {

      _ctx=ctx;

      }

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

      …

      {

      try {

      InitialContext ctx = null;

      ctx = new InitialContext();

      SessionFactory jtaf = (SessionFactory)ctx.lookup(jndiName);

      Session session=jtaf.openSession();

      //Transaction tx = sessio

      UserTransaction tx=_ctx.getUserTransaction();

      tx.begin();

      Book book = new Book();

      book.setId(111);

      book.setBook_name("JBOSS&Hibernate");

      book.setPrice(111f);

      session.save(book);

      tx.rollback();

      session.close();

      }
  

展开更多 50%)
分享

猜你喜欢

整合Hibernate3与JBOSS 3.2.X

编程语言 网络编程
整合Hibernate3与JBOSS 3.2.X

用Spring、Hibernate和JBoss简易步骤

编程语言 网络编程
用Spring、Hibernate和JBoss简易步骤

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

SSH整合中 hibernate托管给Spring得到SessionFactory

Web开发
SSH整合中 hibernate托管给Spring得到SessionFactory

Hibernate 的原理与配置

Java JAVA基础
Hibernate 的原理与配置

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Struts与Hibernate协同工作

Java JAVA基础
Struts与Hibernate协同工作

Jboss4.x下第一个EJB2.x程序

编程语言 网络编程
Jboss4.x下第一个EJB2.x程序

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Web标准中XHTML的代码规范

Web标准中XHTML的代码规范

如何使用Java编写NT服务

如何使用Java编写NT服务
下拉加载更多内容 ↓