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

Eclipse + Lomboz + JBoss:打造免費開源 J2EE 開發全環境實戰指南

     編輯:Java 相關知識

Eclipse 作為 IBM 支持的開源 IDE,憑藉豐富的外掛生態系統成為 Java 開發者首選。結合 Lomboz (J2EE 開發外掛) 與 JBoss (開源應用程式伺服器),即可構建零成本、功能完整的 J2EE 開發、測試、部署一體化環境。本文詳細記錄從下載安裝到建立 Web/EJB 模組、部署測試的完整流程。

環境版本與下載

元件建議版本下載來源
JDK最新版Sun 官網
Eclipse2.1www.eclipse.org
JBoss3.0.7 (含 Tomcat 4.1.24)JBoss 官網
Lomboz2.1Lomboz 官網

注意: JBoss 3.2.x 版本啟動時有 JAR 缺失警告,建議使用穩定的 3.0.7 版。

安裝與配置三步驟

1. Eclipse 安裝

安裝 JDK → 解壓 Eclipse 至目錄 (如 D:\Eclipse) → 執行 eclipse.exe,首次啟動自動偵測 JDK 完成配置。

2. JBoss 安裝與啟動

解壓 JBoss,設定 JBOSS_HOME 環境變數。執行 %JBOSS_HOME%\bin\run.bat,約 1 分鐘完成啟動。

3. Lomboz 安裝與 Eclipse 整合

  1. 解壓 Lomboz 至 %ECLIPSE_HOME%\plugins,產生 com.objectlearn.jdt.j2ee 資料夾
  2. 啟動 Eclipse,選單 Window → Customize Perspective:
    • File → New 勾選所有 Lomboz 相關選項
    • Window → Show View 勾選 Lomboz J2EE View
    • Other 勾選 Lomboz Actions
  3. 配置 Lomboz 屬性 (Window → Preferences → Lomboz):
    • Java → New Project 設定
    • Lomboz 核心設定
    • 伺服器定義:Lomboz 內建常用伺服器配置 (位於 plugins/com.objectlearn.jdt.j2ee/servers),可透過屬性頁圖形化設定 JBoss 參數 (Home 目錄、Port、Classpath 等),修改後記得按 Apply

JBoss 3.2.x 額外 Classpath 設定 (若堅持使用)

在 Window → Preferences → Lomboz → ServerDefinitions 選擇 JBoss,Classpath 標籤加入以下 JAR:

JBOSS_HOME\lib\concurrent.jar
JBOSS_HOME\lib\jboss-system.jar
JBOSS_HOME\server\default\lib\jboss.jar
JBOSS_HOME\server\default\lib\jpl-pattern.jar
JBOSS_HOME\server\default\lib\jpl-util.jar
JBOSS_HOME\server\default\lib\jnpserver.jar
JBOSS_HOME\server\default\lib\jboss-transaction.jar

開發 Web 應用實戰

建立 J2EE 專案

  1. File → New → Lomboz J2EE Project,專案名 TestJ2EE
  2. 下一步保持預設,再下一步 Targeted Server 加入已配置的 JBoss
  3. 分別新增 Web Module (MyWeb) 與 EJB Module (MyEJB)
  4. 完成 → 自動產生專案架構,MyWeb 含 index.jsp、error.jsp、WEB-INF 設定檔

部署與測試

  1. 工具列點擊 Lomboz J2EE Project Outliner 圖示,開啟 Lomboz J2EE View
  2. 右鍵 Web Module 選擇預設伺服器 (紅標示為預設)
  3. 右鍵伺服器 → Run Server 啟動 JBoss
  4. 伺服器就緒後,右鍵 Web Module → Deploy Module
  5. 瀏覽器輸入 https://127.0.0.1:8080/MyWeb 驗證

提示: Tomcat 重新部署需重啟伺服器,JBoss 支援熱部署無需重啟。

常見問題排除

啟動 JBoss 出現 Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object:

  1. Window → Preferences → Java → Installed JREs 確認 JRE 設定正確
  2. 專案屬性 → Java Build Path → Libraries 確認有 JRE System Library,否則 Add Library 加入

開發 EJB 實戰

建立 Session Bean

  1. 右鍵 MyEJB Module → New → Lomboz EJB Creation Wizard
  2. 套件 com.dino.testj2ee.myejb,建立 MyEJB Stateless Session Bean
  3. 產生 MyEJBBean.java,右鍵 → New → Lomboz EJB Method Wizard 添加方法 (如 helloWorld() 回傳 String)
  4. 右鍵 Bean 類別 → Lomboz J2EE → Add EJB to Module 選擇 MyEJB
  5. 右鍵 Module → Lomboz J2EE → Generate EJB Classes 自動產生 Home、Remote、Local、Util 等介面類別
  6. Build Project 完成打包

部署 EJB 模組

同 Web 模組步驟:J2EE View 中右鍵 EJB Module → Deploy Module。

建立測試客戶端

  1. File → New → Lomboz EJB Test Client Wizard
  2. 配置測試類別 TestMyEJB,在 testBean() 加入測試代碼:System.out.println(myBean.helloWorld());
  3. 確認 JBoss 啟動且 EJB 已部署,執行 TestMyEJB,Console 應顯示測試輸出

總結與附錄

Eclipse + Lomboz + JBoss 組合提供完全免費、開源的 J2EE 開發棧,涵蓋編碼、除錯、部署、測試全流程。對複雜企業級應用,建議在專案實作中累積經驗並回饋社群。

附錄:JBoss 3.2 伺服器定義檔 (JBoss320.server)

<serverDefinition name="JBOSS 3.2"
 ejbModules="true" webModules="true" earModules="true">
  <property id="serverRootDirectory" label="Application Server Directory:"
   type="directory" default="D:/jboss-3.2.0" />
  <property id="serverAddress" label="Address:"
   type="string" default="127.0.0.1" />
  <property id="serverPort" label="Port:"
   type="string" default="8080" />
  <property id="classPathVariableName" label="Classpath Variable Name:"
   type="string" default="JBOSS32" />
  <property id="classPath" label="Classpath Variable:"
   type="directory" default="D:/jboss-3.2.0" />

  <serverHome>${serverRootDirectory}</serverHome>
  <webModulesDeployDirectory>${serverRootDirectory}/server/all/deploy</webModulesDeployDirectory>
  <ejbModulesDeployDirectory>${serverRootDirectory}/server/all/deploy</ejbModulesDeployDirectory>
  <earModulesDeployDirectory>${serverRootDirectory}/server/all/deploy</earModulesDeployDirectory>
  <jndiInitialContextFactory>org.jnp.interfaces.NamingContextFactory</jndiInitialContextFactory>
  <jndiProviderUrl>jnp://${serverAddress}:1099</jndiProviderUrl>
  <startClass>org.jboss.Main</startClass>
  <startWorkingDirectory>${serverRootDirectory}/bin</startWorkingDirectory>
  <startVmParameters></startVmParameters>
  <startProgramArguments>-c all</startProgramArguments>
  <stopClass>org.jboss.Shutdown</stopClass>
  <stopWorkingDirectory>${serverRootDirectory}/bin</stopWorkingDirectory>
  <stopVmParameters></stopVmParameters>
  <stopProgramArguments>${serverAddress} ${serverPort}</stopProgramArguments>
  <serverClassPath>
    <jar type="variable">JDK_TOOLS</jar>
    <jar type="variable">${classPathVariableName}/bin/run.jar</jar>
    <jar type="variable">${classPathVariableName}/bin/shutdown.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jboss-j2ee.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/javax.servlet.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/commons-httpclient.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/concurrent.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/getopt.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/jboss-boot.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/jboss-common.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/jboss-jmx.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/jboss-system.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/jdom.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/log4j-boot.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/webdavlib.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/xercesImpl.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/xml-apis.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jnet.jar</jar>
    <jar type="variable">${classPathVariableName}/lib/gnu-regexp.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jboss.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jnpserver.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jpl-util.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jpl-pattern.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jsse.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jbossha.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jboss-jaas.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jts.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jboss-transaction.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/javagroups-2.0.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jmxri.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jmxtools.jar</jar>
    <jar type="variable">${classPathVariableName}/server/all/lib/jbossmx.jar</jar>
  </serverClassPath>
  <clientClassPath>
    <jar type="variable">${classPathVariableName}/client/jboss-j2ee.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jnp-client.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jboss-client.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jboss-common-client.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jbosssx-client.jar</jar>
    <jar type="variable">${classPathVariableName}/client/log4j.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jnet.jar</jar>
    <jar type="variable">${classPathVariableName}/client/jaas.jar</jar>
  </clientClassPath>
</serverDefinition>
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved