JBoss-IDE 1.2.2 簡介 (Hibernate) 4

JBoss-IDE 1.2.2 簡介 (Hibernate) 4:

 

6.          現在要設定 XDoclet , 首先在 tutorial 項目中 src/META-INF 的資料夾裏新增一個 jboss-service-custom.xdt 檔案, 內容如下:

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

<attribute name="CacheProvider">net.sf.hibernate.cache.TreeCacheProvider</attribute>

 

然後右擊 tutorial project, ‘Properties’, 再選 ‘XDoclet Configurations’, 在右上方的視窗右擊選 ‘Add Standard’, ‘Standard Hibernate’ ‘OK’, ‘Standard Hibernate’ 可改名為 ‘Hibernate’ 再按 ‘OK’. 點擊這個 ‘Hibernate’, 在右下方的視窗點擊 ‘hibernatedoclet’, 在右邊的視窗已可看到預設的資料, 我們選 ‘mergeDir’, 填入 ‘src/META-INF’, 如下圖:

 

Standard hibernatedoclet 已有 ‘fileset’ ‘hibernate’ 的屬性, 點擊 ‘hibernate’, 在右方視窗選 ‘version’ 填入 ‘2.0’. 再右擊 ‘hibernatedoclet’ ‘Add’ -> ‘fileset’, ‘dir’ 填入 ‘src/tutorial/hibernate’, ‘include’ 填入 ‘**/*.hbm.xml’. 再右擊 ‘hibernatedoclet’ ‘Add’ -> ‘jbossservice’, ‘dataSource’ 填入 ‘java:/MySqlDS’ (根據步驟 1 JBoss 設定的 DataSource), ‘destDir’ 填入 ‘src/META-INF’, ‘dialect’ 填入 ‘net.sf.hibernate.dialect.MySQLDialect’, ‘jndiName’ 填入 ‘java:/hibernate/HibernateFactory’, ‘serviceName’ 填入 ‘Hibernate’, ‘showSql’ 填入 ‘false’, ‘transactionManagerStrategy’ 填入 ‘net.sf.hibernate.transaction.JBossTransactionManagerLookup’, ‘transactionStrategy’ 填入 ‘net.sf.hibernate.transaction.JTATransactionFactory’, ‘useOuterJoin’ 填入 ‘false’, ‘userTransactionName’ 填入 ‘UserTransaction’, ‘OK’, 如下圖:

 

XDoclet 設定終於完成了, 現在可以運行了. 右擊 tutorial 的項目選 ‘Run XDoclet’, 之後在 tutorial.hibernate 的包裏會新增一個 ‘Num.hbm.xml’ 檔案, src/META-INF 裏會新增一個 ‘jboss-service.xml’, 如圖 . 而這個 ‘jboss-service.xml’ 有小小問題, 這是 XDoclet 對應 Hibernate bug. 當打開 ‘jboss-service.xml’ 時會看到以下代碼:

 

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE server>

 

<!-- Generated file - Do not edit! -->

 

<server>

   <mbean code="net.sf.hibernate.jmx.HibernateService" name="jboss.jca:service=Hibernate">

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

       <attribute name="MapResources">tutorial/hibernate/Num.hbm.xml</attribute>

       <attribute name="JndiName">java:/hibernate/HibernateFactory</attribute>

       <attribute name="Datasource">java:/MySqlDS</attribute>

       <attribute name="Dialect">net.sf.hibernate.dialect.MySQLDialect</attribute>

       <attribute name="UseOuterJoin">false</attribute>

       <attribute name="ShowSql">false</attribute>

       <attribute name="UserTransactionName">UserTransaction</attribute>

       <attribute name="TransactionStrategy">net.sf.hibernate.transaction.JTATransactionFactory</attribute>

       <attribute name="TransactionManagerLookupStrategy">net.sf.hibernate.transaction.JBossTransactionManagerLookup</attribute>

   </mbean>

  

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

    <attribute name="CacheProvider">net.sf.hibernate.cache.TreeCacheProvider</attribute>

</server>

 

尾二和尾三行是在 <mbean> 之外, 所以要手動將這兩行放在 <mbean>…</mbean> 之內. 最後按保存.

 

7.          現在我們來設定封裝的設置. 右擊 tutorial project, ‘Properties’, 再選 ‘Packaging Configurations’, 因為 Hibernate 要包括 .hbm.xml 的影射檔案, 所以我們要在右手邊的視窗在 ‘FiboEJB.jar’ 下的 ‘/JBoss_IDE_Tutorial/bin’ (即教程 /Tutorial/bin) 中加上包括 tutorial/hibernate 包中的 ‘tutorial/hibernate/*.hbm.xml,tutorial/hibernate/*.class’ 的設定, 右擊 ‘/JBoss_IDE_Tutorial/bin’ ‘Edit’:

 

接著是 JBoss sar 服務設定, 在右手邊的視窗右擊選 ‘Add Archive’ 填入 ‘HibernateStartup.sar’ ‘OK’. 再右擊這個 ‘HibernateStartup.sar’ ‘Add File’, File 填入 tutorial META-INF 資料夾中的 ‘jboss-service.xml’  ‘/JBoss_IDE_Tutorial/src/META-INF/jboss-service.xml’, prefix 填入 ‘META-INF’, ‘OK’. 因為這個設定要在 ‘FiboApp.ear’ 之前要設置好, 所以要按最右手邊的 ‘Up’ , 放在 ‘FiboApp.ear’ 之上:

 

‘FiboApp.ear’ 的封裝設定中, 我們要加上這個 ‘HibernateStartup.sar’, 右擊 ‘FiboApp.ear’ ‘Add File’ 填入項目中的 ‘/JBoss_IDE_Tutorial/HibernateStartup.sar’ 後按 ‘OK’. 同時記得要包括設定 JBoss sar 服務當中的 ‘jboss-app.xml’ 檔案,  右擊 ‘FiboApp.ear’ ‘Add File’ 填入項目中的 ‘/JBoss_IDE_Tutorial/src/META-INF/jboss-app.xml’, prefix 填入 ‘META-INF’ 後按 ‘OK’, 再按 ‘OK’:

 

‘jboss-app.xml’ 的代碼如下:

 

<?xml version="1.0"?>

 

<jboss-app>

  <loader-repository>localhost:loader=FiboApp.ear</loader-repository>

 

  <module>

    <service>HibernateStartup.sar</service>

  </module>

 

</jboss-app>

 

Packaging 設定終於完成了, 現在可以運行了. 右擊 tutorial 的項目選 ‘Run Packaging’. 成功後在 Package Explorer 裏應會增多了一個 ‘HibernateStartup.sar’ 檔案, 如圖:

 

8.          現在我們可以試試運行了, 先起動 JBoss -> Deploy ‘FiboApp.ear’ to JBoss, browser 輸入 ‘http://127.0.0.1:8080/fibo’, 再輸入 ‘50’, 便可看到以下結果, JBoss-IDE 教程裏的例子是一樣的, 不過裏面已用了 Hibernate 的功能.

 

後記:

這個例子的缺憾就是生成 jboss-service.xml 中有 bug. 每當行完一次 ‘Run XDoclet’, 就要手動修改 jboss-service.xml. 而網上好像有 fix, 但因為懶沒有找. 最後, 可能有很多地方出錯或遺漏, 希望大家可以指正及多給意見, 謝謝!

 

參考資料:

http://www.jboss.org

http://www.hibernate.org

http://xdoclet.sourceforge.net/tags/hibernate-tags.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值