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

J2EE 連接器與應用跨平台部署實戰:J2SDKEE、WebSphere、JBoss、WebLogic 全流程對比

     編輯:Java 相關知識

J2EE Connector Architecture (JCA) 讓應用服務器統一管理 EIS(企業信息系統)連接。本文以自定義 Resource Adapter 為例,詳細演示在四大主流平台上的完整部署流程:J2SDKEE 1.3、IBM WebSphere 5.0、JBoss 3.2、BEA WebLogic 8.1,揭示配置差異與可移植性要點。

一、 核心組件架構

  • EIS 模擬服務器:TCP 服務端,接收字符串返回 "echo, arg=xxx"
  • Resource Adapter (demo.rar):實現 CCI 接口,含 ConnectionFactory、Connection、Interaction
  • EJB 組件:Stateless Session Bean,通過 JNDI 查找 ConnectionFactory → getConnection() → 調用業務方法 → close()
  • 客戶端:JSP (Web) / Java Application (RMI) → 調用 EJB

EJB 核心代碼片段

public String sayHello(String arg) throws Exception {
 InitialContext iniCtx = new InitialContext();
 Context enc = (Context) iniCtx.lookup("java:comp/env");
 Object ref = enc.lookup("eis/DemoEISFactory"); // 查找連接工廠
 ConnectionFactory dcf = (ConnectionFactory) ref;
 DemoConnection dc = (DemoConnection) dcf.getConnection();
 String result = dc.sayHello(arg);
 dc.close();
 return result;
}

二、 打包結構

resource.ear
├── hello.jar          // EJB 模塊
│   ├── META-INF/ejb-jar.xml
│   └── com/hellking/jca/ejb/*.class
├── demo.rar           // Resource Adapter
│   ├── META-INF/ra.xml
│   └── com/hellking/jca/*.class
├── web.war            // Web 模塊
│   ├── WEB-INF/web.xml
│   └── test.jsp
└── META-INF/application.xml

三、 四大平台部署流程對比

1. J2SDKEE 1.3 (deploytool 圖形化)

  1. 啟動 j2ee -verbose 和 deploytool
  2. 新建 Application → 添加 Resource Adapter(指定接口/實現類、版本、連接工廠屬性)
  3. 添加 Enterprise Bean (Stateless) → 添加 Resource Ref: eis/DemoEISFactory / javax.resource.cci.ConnectionFactory
  4. 添加 Web Component (test.jsp) → 設置 EJB JNDI: ejb/demo、Web Context: /resource
  5. 驗證描述符 → 部署 → 在管理控制台添加 Resource Adapter 到 Server,指定 JNDI: eis/DemoEISFactory
  6. 啟動 EIS Server → 訪問 https://localhost:8000/resource/test.jsp

2. IBM WebSphere 5.0 (Application Assembly Tool + 管理控制台)

  1. 打開 EAR → 綁定 EJB JNDI: ejb/demo
  2. 生成部署代碼
  3. 管理控制台 (9090) → 安裝應用 → 映射 Resource Ref eis/DemoEISFactory 到資源 JNDI
  4. 啟動應用 → Connectors → demo.rar → 新建 J2C Connection Factory: 名稱 DemoEISFactory、JNDI eis/DemoEISFactory
  5. 保存 → 重啟 Server → 測試 https://localhost:9080/resource/test.jsp

關鍵差異:Resource Adapter 部署時綁定 JNDI,EJB 部署時映射引用。

3. JBoss 3.2 (純手工 XML + 熱部署)

  1. 編寫 hellkingjca-service.xml(MBean 定義 NoTxConnectionManager、RARDeployment、ManagedConnectionPool、JNDI: java:/NoTransDemo)
  2. 編寫 jboss.xml 指定 EJB JNDI: ejb/demo、Resource Ref 映射: eis/DemoEISFactory → java:/NoTransDemo
  3. 將 resource.ear 目錄和 hellkingjca-service.xml 拷入 %JBOSS_HOME%/server/default/deploy/
  4. 啟動 JBoss 自動部署 → 測試 https://localhost:8080/resource/test.jsp

特點:無圖形工具,完全靠 XML,支持爆炸式目錄部署,開發調試極快。

4. BEA WebLogic 8.1 (WebLogic Builder + 控制台)

  1. Builder 打開 EAR → 設置 EJB JNDI: ejb/demo
  2. 設置 RA: Connection Factory Name DemoEISFactory、JNDI eis/DemoEISFactory
  3. 編輯 EJB Resource Reference JNDI 為 eis/DemoEISFactory
  4. 保存自動生成部署文件 → 控制台 (7001) 上傳部署 → 測試 https://localhost:7001/resource/test.jsp

特點:裝配階段即綁定 RA JNDI,啟動時自動綁定。

四、 可移植性核心差異總結

環節WebLogicWebSphereJBossJ2SDKEE
EJB JNDI 綁定裝配時裝配時jboss.xml部署時
RA 連接工廠 JNDI 綁定裝配時部署後控制台服務 XML部署後控制台
EJB 引用 RA 映射裝配時部署時映射jboss.xml裝配時

五、 最佳實踐建議

  • 標準描述符 (ejb-jar.xml, ra.xml, application.xml) 保持純標準,不含廠商擴展
  • 廠商特定綁定/映射集中在專用描述符 (weblogic-ejb-jar.xml, ibm-ejb-jar-bnd.xmi, jboss.xml, hellkingjca-service.xml)
  • 構建腳本 (Ant/Maven) 針對不同平台生成對應專用描述符
  • CI/CD 流水線中集成各平台部署驗證

六、 測試驗證

所有平台部署成功後,啟動 EIS Server (src/eis-server/run.bat),瀏覽器訪問對應 URL,頁面顯示:

調用 ejb → jca → eis
發送了: hellking, 返回以下的值:
echo, arg=hellking

EIS Server 控制台輸出:接收到以下輸入: hellking

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