国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

整合Hibernate3與JBOSS 3.2.X

2019-11-17 05:58:47
字體:
供稿:網(wǎng)友

    前言――強強聯(lián)合 在J2EE應(yīng)用服務(wù)器領(lǐng)域,JBoss是發(fā)展最為迅速的應(yīng)用服務(wù)器。由于JBoss遵循商業(yè)友好的LGPL授權(quán)分發(fā),并且由開源社區(qū)開發(fā),這使得JBoss廣為流行。另外,JBoss應(yīng)用服務(wù)器還具有許多優(yōu)秀的特質(zhì)。其一,它將具有革命性的JMX微內(nèi)核服務(wù)作為其總線結(jié)構(gòu);其二,它本身就是面向服務(wù)的架構(gòu)(Service-Oriented Architecture,SOA);其三,它還具有統(tǒng)一的類裝載器,從而能夠?qū)崿F(xiàn)應(yīng)用的熱部署和熱卸載能力。因此,它是高度模塊化的和松耦合的。JBoss用戶的積極反饋告訴我們,JBoss應(yīng)用服務(wù)器是健壯的、高質(zhì)量的,而且還具有良好的性能,2002年JBOSS獲得了最佳應(yīng)用服務(wù)器稱號。

    Entity Bean的效率問題一直是J2EE開發(fā)中爭議熱點,近年來,Hibernate已經(jīng)成為了事實上的持久化引擎。最新版的JBoss應(yīng)用服務(wù)器已經(jīng)將Hibernate集成為JMX MBean服務(wù)。這使得用戶能夠在應(yīng)用服務(wù)器環(huán)境中直接使用Hibernate,而不管它是否處于J2EE上下文中。JBOSS 4.0中已經(jīng)融入了Hibernate作為對象持久化的基礎(chǔ)。

    對于大量采用JBOSS 3.2.x的用戶,如何將Hibernate3加入到JBOSS中,以便使用JBOSS的連接池,支持JBOSS的BMT和CMT事務(wù)。下文將具體將Hibernate3加入到JBOSS 3.2.x的實現(xiàn)步驟。

    操作步驟

    JBOSS是以JMX為微內(nèi)核的,各種功能和服務(wù)都有MBean提供,同時Hibernate提供了對MBean接口的實現(xiàn)org.hibernate.jmx.HibernateService.所以我們可以很方便的將持久化類打包成Mbean,部署到JBOSS中,以下是具體步驟:

    1.  將Hibernate3.jar及Hibernate用到的其他庫文件一同拷貝至相應(yīng)的JBOSS路徑下(如:jboss-3.2.1/server/default/lib)。

    2.  為了將我們編寫的持久化治理類,加入到JBOSS中,我們必須將他封裝成Mbean形式,以便被JMX加載。

    如同實現(xiàn)一般的Mbean一樣需要編寫jboss-service.xml文件,文件內(nèi)容如下:

    <server>

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

    <depends>jboss.jca:service=RARDeployer</depends>

    <depends>jboss.jca:service=LocalTxCM,name=YourDataSource</depends>

    <attribute name="Ma

    <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依靠的服務(wù),其中需要將YourDataSource替換實際應(yīng)用中使用的數(shù)據(jù)源的名稱。

    <attribute>元素對Mbean中的屬性進(jìn)行了配置,其中

    MapResource指定了持久化類的映射文件,將其替換為實際的映射文件名。

    JndiName指定的是所用到的數(shù)據(jù)源的JNDI名,將其替換為實際的數(shù)據(jù)源JNDI名稱。

    Dialect同樣根據(jù)使用的數(shù)庫類型不同,進(jìn)行相應(yīng)的替換。

    TransactionStrategy,在你的session Bean使用BMT的時候應(yīng)該配置為org.hibernate.transaction.JTATransactionFactory,而當(dāng)你的Session Bean使用CMT的時候應(yīng)該配置為org.hibernate.transaction.CMTTransactionFactory.

    Mbean是一種jar文件(但其后綴不是jar,而是sar),以下是要創(chuàng)建的sar包的內(nèi)部結(jié)構(gòu)。

    YourClasses(持久化類及輔助類)

    mappings/ Yourmapping.hbm.xml

    META-INF/joss-service.xml

    3         在Session Bean中調(diào)用持久化對象

    …

    private javax.ejb.SessionContext _ctx;

    public void setSessionContext(javax.ejb.SessionContext ctx)

    {

    _ctx=ctx;

    }

    …

    {

    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();

    }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍山县| 望奎县| 稷山县| 获嘉县| 万载县| 将乐县| 鸡东县| 四子王旗| 双江| 甘孜县| 栖霞市| 舒兰市| 灵丘县| 新干县| 巴林左旗| 山西省| 香河县| 南昌市| 漳州市| 昌邑市| 泽库县| 瓮安县| 布拖县| 陵川县| 大渡口区| 内黄县| 合肥市| 宾川县| 城市| 乐安县| 靖边县| 喀喇沁旗| 宜黄县| 洛阳市| 小金县| 玉山县| 苗栗市| 周宁县| 平邑县| 乌兰察布市| 天全县|