首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

JBoss EJB 開發完整配置指南:從資料源到 JNDI 綁定的實戰詳解

     編輯:Java 相關知識

對於初接觸 EJB 的開發者,讓第一個程式順利跑起來往往是最大挑戰。本文整理 JBoss EJB 開發所需的完整配置檔結構與關鍵設定,涵蓋資料源、JNDI 綁定、CMP 欄位映射、Web 模組等核心環節,助你快速建立可運行的 EJB 應用。

一、專案檔案結構總覽

檔案路徑用途
jboss/conf/default/jboss.jcml資料源設定
jboss/conf/default/standardjaws.xml資料庫類型設定
[project.ear]/META-INF/application.xml專案基本資訊設定
[project_ejb.jar]/META-INF/ejb-jar.xmlEJB 元資料設定
[project_ejb.jar]/META-INF/jboss.xmlJNDI 名稱綁定設定
[project_ejb.jar]/META-INF/jaws.xmlCMP 欄位與資料庫映射
[project_web.war]/WEB-INF/web.xmlWelcome file、Servlet 等 Web 設定

二、EJB 引用與資料庫配置實戰

1. 引用 EJB(透過 JNDI 查找)

// 1) 程式碼查找
Context ctx = new InitialContext();
MyHome home = (MyHome) ctx.lookup("jndiEJBName");

// 2) ejb-jar.xml 宣告
<ejb-ref>
  <ejb-ref-name>ejb/MyEJB</ejb-ref-name>
  <ejb-ref-type>Entity</ejb-ref-type>
  <home>com.example.MyHome</home>
  <remote>com.example.MyRemote</remote>
</ejb-ref>

// 3) jboss.xml 綁定 JNDI 名稱
<entity>
  <ejb-name>EJBName</ejb-name>
  <jndi-name>jndiEJBName</jndi-name>
</entity>

2. BMP 直接引用資料庫(以 MySQL 為例)

// 1) 程式碼查找 DataSource
DataSource ds = (DataSource) ctx.lookup("java:comp/env/DBName");

// 2) ejb-jar.xml 定義 resource-ref
<entity>
  <ejb-name>MyBMP</ejb-name>
  <resource-ref>
    <res-ref-name>DBName</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
</entity>

// 3) jboss.xml 映射到 JBoss 資源管理器
<entity>
  <ejb-name>MyBMP</ejb-name>
  <resource-ref>
    <res-ref-name>DBName</res-ref-name>
    <resource-name>myDB</resource-name>
  </resource-ref>
</entity>

<resource-managers>
  <resource-manager res-class="javax.sql.DataSource">
    <res-name>myDB</res-name>
    <res-jndi-name>mySQLDS</res-jndi-name>
  </resource-manager>
</resource-managers>

3. standardjaws.xml 設定資料庫類型映射

<datasource>mySQLDS</datasource>
<type-mapping>mySQL</type-mapping>
<default-entity>
  <create-table>false</create-table>
  <remove-table>false</remove-table>
  <tuned-updates>false</tuned-updates>
  <read-only>false</read-only>
  <time-out>300</time-out>
</default-entity>

4. jboss.jcml 定義 XA DataSource(MySQL 範例)

<mbean code="org.jboss.jdbc.XADataSourceLoader"
       name="DefaultDomain:service=XADataSource,name=mySQLDS">
  <attribute name="PoolName">mySQLDS</attribute>
  <attribute name="DataSourceClass">
    org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl
  </attribute>
  <attribute name="URL">jdbc:mysql://pyliu/cake</attribute>
  <attribute name="JDBCUser">root</attribute>
  <attribute name="Password" />
</mbean>

關鍵要點總結

  • ejb-jar.xml 定義 EJB 邏輯介面與資源參考(標準化部署描述符)
  • jboss.xml 將邏輯名稱映射至 JBoss 具體 JNDI 名稱與資源管理器(容器專屬)
  • jaws.xml 處理 CMP 實體 Bean 的持久化映射細節
  • jboss.jcml / standardjaws.xml 設定底層資料源連接池與資料庫方言

依照上述結構配置,即可在 JBoss 上成功部署並運行 EJB 應用。建議開發時善用 XDoclet 或 IDE 自動生成工具減少手工 XML 編寫錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved