JAVA流通橋

          JAVA啟發者

          統計

          留言簿(3)

          AJAX相關網址

          Eclipse相關網址

          Hibernate

          java相關網址

          LINUX相關網址

          webwork相關網址

          友好鏈接

          閱讀排行榜

          評論排行榜

          jboss配置文件的簡單介紹

          這里面是最麻煩的,我會將遇到的常見錯誤描述一下,并說明解決方法。

          要部署EJB就要修改部署文件,因為默認生成的部署文件還是有出路的。但是網絡上很多文章提到需要修改的文件頗多,我在實際開發的時候覺得沒有必要修改這么多文件,請聽我慢慢到來。

          與部署有關的文件如下:

          文件名稱

          路徑

          用途

          standardjaws.xml

          jboss-3.0.2\server\default\conf

          Entity EJB標準部署描述文件

          standardjbosscmp-jdbc.xml

          jboss-3.0.2\server\default\conf

          JBossCMP容器的標準部署描述文件。

          standardjboss.xml

          jboss-3.0.2\server\default\conf

          JBoss的標準部署描述文件。

          oracle-service.xml

          jboss-3.0.2\server\default\deploy

          Oracle數據庫的部署描述文件(非事務處理數據源),需要從jboss-3.0.2\docs\examples\jcacopy過來

          oracle-xa-service.xml

          jboss-3.0.2\server\default\deploy

          Oracle數據庫的部署描述文件(事務處理數據源),需要從jboss-3.0.2\docs\examples\jcacopy過來

          ejb-jar.xml

          jarMETA-INF目錄中

          jar及其ejb標準部署描述文件

          jaws.xml

          jarMETA-INF目錄中

          Entity EJB部署描述文件,這個文件描述了CMP定義以及其持久屬性。

          jboss.xml

          jarMETA-INF目錄中

          EJBJbossJNDI部署描述文件

           

           

           

           

          1.        standardjaws.xml:這個文件主要描述了數據源和映射類型,EJB映射的表。這個數據源描述了一個JNDI名稱,可以通過這個JNDI獲得一個數據源連接池。jar包的META-INF目錄中有個jaws.xml與此文件對應,只要把jar中的jaws.xml它配置好了就可以,不用修改這個文件。

          2.        standardjbosscmp-jdbc.xmlJBossCMP容器的標準部署描述文件。網上說此文件需要進行修改,比如

          <defaults>

           缺省的數據源

                <datasource>java:/DefaultDS</datasource>

          缺省的數據庫類型

                <datasource-mapping>Hypersonic SQL</datasource-mapping>

          ……..

          </defaults>

          修改成當前使用的配置

          當前使用的數據源

                <datasource>java:/NECOracle</datasource>

          當前使用的數據庫類型

                <datasource-mapping>Oracle8</datasource-mapping>

          但是在實際操作中沒有進行任何修改也成功的部署了ejb。所以這個文件應該不用修改。

          3.        standardjboss.xmlJBoss的標準部署描述文件。此文件不需要修改。

          4.        jaws.xmljaws.xml對應standardjaws.xml文件,但是此文件在jarMETA-INF目錄中,這個文件描述了CMPEJB定義以及其持久屬性。只專門針對此jar的數據源和映射類型的描述。此文件需要做修改。

          <jaws>

          此處聲明的DataSource是此jar應該對應的DataSource,這個數據源就是在oracle-service.xml中描述的數據源,oracle-service.xml中可以有多個數據源,要選擇此jar相對應的數據源。如果oracle-service.xml文件只是使用原來的數據源OracleDS,那么此處直接修改就可以:

          EntityEJB的數據源,這個OracleDSoracle-service.xml文件默認的數據源

          <datasource> OracleDS</datasource>   

          注意:此文件是由JBulider自動生成的,所以此DataSource也是自動加上的,此名稱缺省與在EJBModule中配置的DataSource的名稱一致,所以為了方便起見,EJBModule中配置的DataSource應該是oracle-service.xml中被聲明的數據源(也可修改oracle-service.xml文件,進行添加)。這樣此處就不用進行修改。比如本例“NECOracle”就在oracle-service.xml中聲明了。

          數據庫的類型,此處必須是正確的,就是必須是standardjbosscmp-jdbc.xml定義的數據庫

          <type-mapping>Oracle8</type-mapping>  

          以下是此EJB的相關描述

            <enterprise-beans>

          <entity>

          EntityEJB的名稱

                <ejb-name>Systui</ejb-name>            

          開始聲明具體的數據庫字段名稱和EJB域的映射關系

                <cmp-field>

                  <field-name>tuiid</field-name>

                  <column-name>TUIID</column-name>

                </cmp-field>

          ……………..

          </enterprise-beans >

           

          我們也可以在oracle-service.xml中增加數據源,并使用這個數據源(如何增加數據源下面oracle-service.xml會詳細講到),同時此名稱缺省值是JBuliderEJBModule中創建的DataSource

          NECOracle是在oracle-service.xml新增的數據源

          <datasource> NECOracle </datasource>   

          數據庫的類型,此處必須是正確的,就是必須是standardjbosscmp-jdbc.xml定義的數據庫

          <type-mapping>Oracle8</type-mapping>  

          以下是此ejb的相關描述

            <enterprise-beans>

          <entity>

          EntityEJB的名稱

                <ejb-name>Systui</ejb-name>             

          開始聲明具體的數據庫字段名稱和EJB域的映射關系

                <cmp-field>

                  <field-name>tuiid</field-name>

                  <column-name>TUIID</column-name>

                </cmp-field>

          ……………..

          </enterprise-beans >

          5.        oracle-service.xmlOracle數據庫非事務處理數據源部署描述文件,這個文件用來描述oracle數據源,可以直接修改當前的數據源,也可以在此文件中增加數據源,本人傾向增加數據源,通過增加就可以有多個數據源供 EJB使用了。我們現在可以對其進行修改:

          開始描述一個數據源,這個數據源的名稱是OracleDS

            <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

              <depends optional-attribute-name="ManagedConnectionFactoryName">

          <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

          …….

          此處描述數據庫的連接參數

                      <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@youroraclehost:1521:yoursid</config-property>

          此處描述數據源的連接驅動          

           <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

          訪問數據庫的用戶名

                      <config-property name="UserName" type="java.lang.String"></config-property>

          訪問數據庫的密碼

                      <config-property name="Password" type="java.lang.String"></config-property>

                    </properties>

                  </attribute>

          ……

            </mbean>

          修改后

            <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

              <depends optional-attribute-name="ManagedConnectionFactoryName">

          <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

          …….

          此處描述數據庫的連接參數

                      <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@172.28.119.173:1521:comp1</config-property>

          此處描述數據源的連接驅動          

           <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

          訪問數據庫的用戶名

                      <config-property name="UserName" type="java.lang.String">mrc</config-property>

          訪問數據庫的密碼

                      <config-property name="Password" type="java.lang.String">mrc1</config-property>

                    </properties>

                  </attribute>

          ……

            </mbean>

           

          我們也可以增加一個數據源

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

          <server>

          …….

          原來缺省的數據源OracleDS

            <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS"> 

              <depends optional-attribute-name="ManagedConnectionFactoryName">

          <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=OracleDS">

          …….

                      <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@youroraclehost:1521:yoursid</config-property>

          <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

                      <config-property name="UserName" type="java.lang.String"></config-property>

                      <config-property name="Password" type="java.lang.String"></config-property>

                    </properties>

                  </attribute>

          ……

          </mbean>

           

          新增加的一個數據源NECOracle

            <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=NECOracle"> 

              <depends optional-attribute-name="ManagedConnectionFactoryName">

          <mbean code="org.jboss.resource.connectionmanager.LocalTxConnectionManager" name="jboss.jca:service=LocalTxCM,name=NECOracle">

          …….

          此處描述數據庫的連接參數

                      <config-property name="ConnectionURL" type="java.lang.String">jdbc:oracle:thin:@172.28.119.173:1521:comp1</config-property>

          此處描述數據源的連接驅動          

           <config-property name="DriverClass" type="java.lang.String">oracle.jdbc.driver.OracleDriver</config-property>

          訪問數據庫的用戶名

                      <config-property name="UserName" type="java.lang.String">mrc</config-property>

          訪問數據庫的密碼

                      <config-property name="Password" type="java.lang.String">mrc1</config-property>

                    </properties>

                  </attribute>

          ……

            </mbean>

          </server>

           

          6.        oracle-xa-service.xml:此文件同oracle-service.xml是一個道理,區別在于此文件是描述事務處理數據源的,而oracle-service.xml則是描述非事務處理數據源的。本例使用非事務處理數據源,所以此對文件沒有進行修改。

          7.        ejb-jar.xml:此文件在jarMETA-INF目錄中,是此jar及其EJB的標準部署描述文件。此處需要注意的就是文件中描述的DataSource

           

          <ejb-jar>

            <display-name>MyEJBModule</display-name>

            <enterprise-beans>

              <entity>

                <ejb-name>Systui</ejb-name>

                <home>myejb.SystuiHome</home>

          ……

                <resource-ref>

          此處的JDBC名稱缺省值是EJBModule中創建的DataSource的名稱,EJBModule中創建的DataSource應該是在oracle-service.xml文件中聲明過的DataSource,否則此處就需要手工修改成oracle-service.xml中聲明的DataSource的名稱。

                  <res-ref-name>jdbc/NECOracle</res-ref-name>

                  <res-type>javax.sql.DataSource</res-type>

                  <res-auth>Container</res-auth>

                </resource-ref>

              </entity>

          </ejb-jar>

           

          8.        jboss.xml:此文件在jarMETA-INF目錄中,EJBJbossJNDI部署描述文件。

          <jboss>

            <enterprise-beans>

              <entity>

                <ejb-name>Systui</ejb-name>

                <jndi-name>Systui</jndi-name>

                <resource-ref>

          此處的JDBC名稱缺省值是EJBModule中創建的DataSource的名稱,EJBModule中創建的DataSource應該是在oracle-service.xml文件中聲明過的DataSource,否則此處就需要手工修改成oracle-service.xml中聲明的DataSource的名稱。

                  <res-ref-name>jdbc/NECOracle</res-ref-name>

                  <jndi-name>NECOracle</jndi-name>

                </resource-ref>

              </entity>

            </enterprise-beans>

          </jboss>

          9.        相應的部署文件修改完成之后就可以發布EJB了。“Enterprise”->Server Deployment”進入發布界面,“Action”選擇“Deploy”,“Archive(s)”可以選擇要發布的jar文件,通常這個文件和你的工程文件在一個目錄下。

          posted on 2007-07-30 16:54 朱巖 閱讀(3506) 評論(0)  編輯  收藏 所屬分類: jboss文章


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 元江| 凌云县| 平顺县| 邢台市| 土默特左旗| 宁德市| 江源县| 和顺县| 塔城市| 兴安盟| 广州市| 峨山| 鞍山市| 莱西市| 武鸣县| 临桂县| 嘉鱼县| 仁化县| 安阳市| 资中县| 辉县市| 岱山县| 额尔古纳市| 延庆县| 文山县| 奉化市| 景东| 确山县| 虎林市| 甘泉县| 松溪县| 华阴市| 大连市| 高州市| 芜湖县| 卢氏县| 旺苍县| 宁陕县| 台湾省| 张北县| 通州区|