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

EJB 3.0 學習環境搭建完整指南:JDK 5、Eclipse 3.2、JBoss 4.0.4 GA、MyEclipse 5.0 整合配置實戰

     編輯:Java 相關知識

工具鏈版本規劃

工具版本下載關鍵字角色
JDK5.0 (1.5.0_xx)jdk-1_5_0_xx-windows-i586.exeEJB 3.0 需 Java 5 註解支援
Eclipse3.2.xeclipse-SDK-3.2-win32.zipIDE 基礎平台
JBoss AS4.0.4.GAjboss-4.0.4.GA-installer.jarEJB 3.0 參考實作容器
MyEclipse5.0+MyEclipse 5.0 GAEJB 3.0 視覺化開發外掛

JBoss 4.0.4.GA 安裝關鍵決策點

  1. 安裝路徑:避開 Program Files (空格、權限導致莫名錯誤),建議 D:/jboss-4.0.4.GA 或 /opt/jboss
  2. 安裝選項:選擇 ejb3-clustered (含叢集、EJB 3.0 完整功能)
  3. 配置名稱:輸入 all (啟動所有服務,含叢集、IIOP、EJB 3.0)
  4. JMX 主控台安全:全部勾選,設定 admin 用戶名/密碼 (生產環境必須)

啟動驗證:正確的啟動命令

cd %JBOSS_HOME%\bin
run.bat -c all
# 必須指定 -c all,否則預設 default 配置缺少 EJB 3.0 服務會報錯

控制台出現 Started in XXs:XXXms 且無 ERROR 即成功。訪問 https://localhost:8080/jmx-console 驗證 JMX 主控台。

JBoss 目錄結構深度解析

目錄用途操作建議
bin/啟動/關閉腳本 (run.bat/shutdown.bat)修改 run.conf 調整 JVM 參數 (-Xms/Xmx/Metaspace)
client/客戶端通信 JAR (jnp-client.jar 等)獨立 Java 客戶端 CLASSPATH 依賴
docs/範例配置檔 (資料庫 -ds.xml、資料源範例)參考配置資料源、安全域、JMS
docs/dtd/XML DTD 定義驗證部署描述檔
lib/啟動時共享 JAR (所有配置共用)勿放應用 JAR,避免類別衝突
server/各配置集 (minimal/default/all)本教程使用 server/all/
server/all/conf/配置檔 (login-config.xml、standardjboss.xml 等)調整安全、事務、EJB 容器行為
server/all/data/嵌入式資料庫檔案 (Hypersonic、JBossMQ)開發測試用,生產勿用
server/all/deploy/熱部署目錄 (EAR/WAR/JAR/SAR/-ds.xml)放入即部署,修改即熱更新
server/all/lib/配置專用共享 JAR放置 JDBC 驅動、共用庫
server/all/log/日誌檔 (server.log、boot.log)除錯首選入口
server/all/tmp/臨時檔案 (編譯 JSP、工作目錄)可定期清理

EJB 3.0 部署機制:極簡熱部署

JBoss 掃描 server/all/deploy/ 目錄變化,任何合法封裝檔即時部署:

  • EJB JAR:含 META-INF/ejb-jar.xml (可選,純註解可無) 或 persistence.xml
  • WAR:Web 模組
  • EAR:企業應用封裝,含 META-INF/application.xml
  • 服務封裝 (.sar):JBoss MBean 服務

無需重啟、無需管理主控台操作、無需部署工具——複製檔案即部署,刪除檔案即解除部署。

MyEclipse 5.0 整合配置

  1. JBoss 整合:MyEclipse → Preferences → Application Servers → JBoss 4.x → 設定 Home 目錄、配置為 all
  2. EJB 3.0 專案屬性:專案右鍵 → Properties → MyEclipse → EJB 3.0 → 啟用註解處理、實體增強
  3. 除錯配置:Debug Configurations → Remote Java Application → Host: localhost, Port: 8787 (需啟動 JBoss 時加 -Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n)

首個 EJB 3.0 實體驗證範例

// 實體類
@Entity
@Table(name = "USERS")
public class User implements Serializable {
    @Id @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String name;
    private String email;
    // getter/setter...
}

// Session Bean
@Stateless
public class UserServiceBean implements UserService {
    @PersistenceContext
    private EntityManager em;

    public User createUser(String name, String email) {
        User u = new User();
        u.setName(name);
        u.setEmail(email);
        em.persist(u);
        return u;
    }
}

// persistence.xml (放在 META-INF/)
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
  <persistence-unit name="hello-pu">
    <jta-data-source>java:/DefaultDS</jta-data-source>
    <properties>
      <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    </properties>
  </persistence-unit>
</persistence>

常見環境問題速查

現象原因解決
啟動報 NoClassDefFoundError: javax/annotation/ResourceJDK 5 未正確配置 / JBoss lib 缺少 annotation API確認 JAVA_HOME 指向 JDK 5、JBoss lib 有 jboss-annotations-ejb3.jar
實體不增強 / LazyInitializationExceptionMyEclipse 未啟用 EJB 3.0 增強 / 缺少 persistence.xml專案屬性啟用增強、檢查 META-INF/persistence.xml
熱部署不生效部署至錯誤目錄 / 封裝結構不正確確認放入 server/all/deploy/、EAR 結構含 META-INF/application.xml
資料源找不到未部署 -ds.xml / JNDI 名稱不匹配複製 docs/examples/jca/*-ds.xml 至 deploy、修改 jndi-name

總結

EJB 3.0 學習環境的核心在於:JDK 5 註解支援 + JBoss 4.0.4.GA all 配置 + 正確啟動參數 + 熱部署目錄機制。MyEclipse 5.0 提供視覺化開發加速,但理解底層 JBoss 目錄結構、部署掃描機制、類別載入層級對解決疑難雜症至關重要。建立標準化環境腳本 (安裝路徑、JVM 參數、資料源範本),可將團隊新成員環境搭建時間從半天壓縮至 30 分鐘內。

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