JBoss-IDE 1.2.2 簡介 (Hibernate) 4

类别:Java 点击:0 评论:0 推荐:
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

本文地址:http://com.8s8s.com/it/it16714.htm