J2EE (Java 2 Platform, Enterprise Edition) 是企業級分散式應用技術規範集合。核心價值在於統一組件模型 (JSP, Servlet, EJB, JMS, JTA, JPA 等)、服務架構與介面標準,解決異構平台間互操作難題,實現「Write Once, Run Anywhere」於伺服端。
注意: 此為歷史版本教學,現代開發請直接使用 Jakarta EE 9+/10+ (Tomcat 10+, WildFly, GlassFish 等),但理解歷史架構有助於維護舊系統。
JAVA_HOME、PATH、CLASSPATH。j2sdkee-1_3_1-win.exe),預設目錄 C:\j2sdkee1.3.1。此為 Sun 參考實現,僅供學習,非生產級。J2EE_HOME=C:\j2sdkee1.3.1
PATH=%PATH%;%J2EE_HOME%\bin
CLASSPATH=.;%J2EE_HOME%\lib\j2ee.jar
j2ee -verbose # 啟動,見到啟動成功訊息即可
j2ee -stop # 停止
EJB 是 J2EE 核心,支援分散式事務與安全。EJB 2.1 需編寫三個檔案:
// Hello.java
import javax.ejb.*;
import java.rmi.*;
public interface Hello extends EJBObject {
String say() throws RemoteException;
}
// HelloHome.java
import javax.ejb.*;
import java.rmi.*;
public interface HelloHome extends EJBHome {
Hello create() throws RemoteException, CreateException;
}
// HelloBean.java
import javax.ejb.*;
import java.rmi.*;
public class HelloBean implements SessionBean {
private SessionContext ctx;
public String say() { return "Hello, world."; }
// 容器回調方法
public void setSessionContext(SessionContext ctx) { this.ctx = ctx; }
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
}
javac *.java
# 產生 .class 檔,打包為 ejb-jar.xml + 類檔 -> .jar
# 使用 deploytool 或指令部署至 J2EE Server
EJB 3.0 (JSR-220) 引入註解,僅需編寫 Bean 類,Remote/Home 介面由容器自動生成。區域介面優化同 JVM 呼叫效能。現代 Jakarta EE (EJB 4.0/CDI) 更進一步,輕量化、POJO 化、漸進式開發。
掌握 J2EE 歷史脈絡與核心組件交互,是通往現代雲原生 Java 架構師的必經基石。