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

J2EE 新手入門圖解:從零打造企業級應用

     編輯:Java 相關知識

許多人聽過 J2EE,但真正理解其含義的有多少?簡單來說,J2EE 是一套企業級應用系統模型與規範,涵蓋 Java RMI、EJB、JMS、JSP 等技術。善用 J2EE 資源,我們能快速建構強大的企業應用,如電信計費系統、知識管理平台等。你可能以為這需要巨額投資?其實不然,利用網路上免費開源的元件組裝,即可白手起家打造可用系統(當然電腦錢得自己出)。

本文技術棧版本

  • 資料庫:MySQL 3.23.35
  • EJB / Web 伺服器:JBoss 3.2.3
  • 開發環境:Eclipse 2.1 + Lomboz 2.1.3

注意:版本號需嚴格對應,否則易發生相容性問題。

一、 環境安裝與配置

1. JDK 安裝與環境變數設定

從 Sun 官網下載最新 JDK(如 jdk1.4),安裝至 D:\worktools\jdk1.4。右鍵「我的電腦」→「進階」→「環境變數」:

  • 用戶變數:新增 JAVA_HOME=D:\worktools\jdk1.4、CLASSPATH=%JAVA_HOME%\LIB;%JAVA_HOME%\TOOLS.JAR
  • 系統變數:編輯 PATH 追加 %JAVA_HOME%\bin

(WinXP 即時生效,Win9x 需重開機)

2. MySQL 安裝與啟動

下載 MySQL 3.23.35,建議安裝至 C:\MYSQL。安裝完成後執行 WINMYSQLADMIN.EXE,設定帳號密碼(預設 root/空密碼)即可使用。

3. 圖形化管理工具 MySQL-Control-Center

下載 mysql-cc 0.9.4(免費),連線設定:用戶 root、密碼空白、Port 3306、Host localhost。建立資料庫 mytest,資料表 myejb(欄位 id、context 均為 varchar),插入測試資料:(1,'time'), (2,'blank'), (3,'talk')。

4. JBoss 配置資料源

解壓 JBoss 3.2.3 至 D:\worktools\Jboss3.2.3。複製 \docs\examples\jca\mysql_ds.xml 至 \server\default\deploy,編輯重點欄位:

  • jndi-name → mytestDS
  • connection-url → jdbc:mysql://localhost:3306/mytest
  • driver-class → org.gjt.mm.mysql.Driver
  • user-name / password → 對應 MySQL 帳密

存檔並重命名為 mytest-ds.xml。下載 mysql-connector-java-3.0.11-stable,提取 mysql-connector-java-3.0.11-stable-bin.jar 至 JBoss\server\default\lib 並改名 mySQL.jar。

5. Eclipse + Lomboz 開發環境建置

解壓 Eclipse 2.1 與 Lomboz 2.1.3,將 Lomboz 產生的 com.objectlearn.jdt.j2ee、com.objectlearn.jdt.j2ee.editors 兩資料夾複製至 Eclipse \plugins 目錄。啟動 Eclipse:

  • Window → Customize Perspective 勾選所有 Lomboz 相關選項
  • Window → Preferences → Lomboz:JDK Tools.jar 指向 %JAVA_HOME%\lib\tools.jar,取消勾選 Restart Server After Deploy(JBoss 支援熱部署)
  • Server Definition:Server Type 選 JBoss 3.2.x,Application Server Directory 與 Classpath Variable 指向 JBoss 主目錄
  • Java → New Project:Source and output folder 改為 folders

二、 開發第一個實體 EJB

EJB 2.0 三種 Bean 類型

  • Session Bean:模擬商務流程
  • Entity Bean:模擬商務資料(本文重點)
  • Message Driven Bean:非同步訊息處理

1. 建立 Lomboz J2EE 專案

File → New → Project → Lomboz J2EE Project,專案名 EJBTest。建立 EJB Module myEJB,Target Server 選 JBoss 3.2.x。

2. 使用向導生成 CMP Entity Bean

File → New → Lomboz EJB Creation Wizard:

  • Package:Rip.ejb.cmp
  • Name:mytest
  • EJB Type:Container Managed Entity EJB
  • Table Name:myejb(對應 MySQL 資料表)
  • DataSource:mytest-ds.xml(對應 JBoss 設定的 JNDI 名稱 java:/mytestDS)
  • 欄位:id、context,設 id 為 Primary Key

3. 修改 ejbCreate 方法

打開生成的 mytestBean.java,在 ejbCreate() 加入兩個 String 參數 id、context,並呼叫 setId()、setContext()。

4. 加入 Module 與生成部署類別

  • 右鍵 mytestBean.java → Lomboz J2EE → Add EJB to Module 勾選 myEJB
  • 右鍵 myEJB → Lomboz J2EE → Generate EJB Classes,生成 Home、Remote、PK 等 6 個類別

5. 修改 jbosscmp-jdbc.xml

在 myEJB/META-INF 下編輯 jbosscmp-jdbc.xml 關鍵段落:

<jbosscmp-jdbc>
  <enterprise-beans>
    <defaults>
      <datasource>java:/mytestDS</datasource>
      <datasource-mapping>mySQL</datasource-mapping>
      <preferred-relation-mapping>foreign-key</preferred-relation-mapping>
    </defaults>
  </enterprise-beans>
</jbosscmp-jdbc>

6. 部署與啟動

右鍵 myEJB → Deploy Module → Debug Server 啟動 JBoss。

三、 JSP 呼叫 EJB 顯示資料

1. 建立 Web Module

新增 Web Module myWeb,Target Server 同 JBoss 3.2.x。

2. 編輯 index.jsp

<%@ page import="javax.ejb.*,javax.naming.*,Rip.ejb.cmp.*,java.util.*,java.rmi.RemoteException" %>
<html><head><title>Welcome - First EJB</title></head><body>
<center><%
  InitialContext ctx = new InitialContext(System.getProperties());
  mytestHome home = (mytestHome) ctx.lookup("mytestBean");
  try {
    mytest bean = home.create("18", "Hello, I am Rip"); // 新增資料
    Collection col = home.findAll(); // 查詢所有
    Iterator it = col.iterator();
    while (it.hasNext()) {
      mytest elem = (mytest) it.next();
      out.println(elem.getId() + ":" + elem.getContext() + "<br>");
    }
  } catch (Exception e) { e.printStackTrace(); }
%></center></body></html>

3. 部署 Web Module 並測試

右鍵 myWeb → Deploy Module。瀏覽器開啟 https://localhost:8080/myWeb/index.jsp 即可看到資料輸出。

四、 結語

核心 EJB 程式碼僅數十行,展現快速開發優勢。但 EJB 屬重量級架構,遠端呼叫耗資源;實務上可改用 Local Interface 或採用 Hibernate 等 O/R Mapping 框架輕量化。篇幅有限,未盡錯誤排解請來信 kknd0669@sina.com 討論。

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