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

J2EE Tutorial 實戰:從零建立簡單 Stateless Session Bean (Converter 應用完整步驟)

     編輯:J2EE

環境準備

  1. 下載範例碼:j2eetutorial/examples/src/ejb/converter (Sun 下載頁)
  2. 安裝 Ant (Apache Ant)
  3. 設定環境變數:JAVA_HOME, J2EE_HOME, ANT_HOME, PATH 包含三者 bin 目錄
  4. 啟動 J2EE Server:j2ee -verbose (停止:j2ee -stop)
  5. 啟動 DeployTool (GUI):deploytool

建立 J2EE 應用程式

  • DeployTool:File → New Application
  • 目錄選 j2eetutorial/examples/src/ejb/converter
  • 檔案名 ConverterApp.ear

建立 Enterprise Bean (ConverterEJB)

三大組件

  1. Remote Interface:Converter.java
    
    public interface Converter extends EJBObject {
        BigDecimal dollarToYen(BigDecimal dollars) throws RemoteException;
        BigDecimal yenToEuro(BigDecimal yen) throws RemoteException;
    }
    
  2. Home Interface:ConverterHome.java
    
    public interface ConverterHome extends EJBHome {
        Converter create() throws RemoteException, CreateException;
    }
    
  3. Bean Class:ConverterBean.java (Stateless)
    
    public class ConverterBean implements SessionBean {
        BigDecimal yenRate = new BigDecimal("121.6000");
        BigDecimal euroRate = new BigDecimal("0.0077");
        public BigDecimal dollarToYen(BigDecimal dollars) {
            return dollars.multiply(yenRate).setScale(2, BigDecimal.ROUND_UP);
        }
        public BigDecimal yenToEuro(BigDecimal yen) {
            return yen.multiply(euroRate).setScale(2, BigDecimal.ROUND_UP);
        }
        // ejbCreate, ejbRemove, ejbActivate, ejbPassivate, setSessionContext 皆為空實作
    }
    

編譯與打包

  1. 命令列:ant converter (輸出至 build/ejb/converter)
  2. DeployTool:File → New Enterprise Bean → 建立 JAR (ConverterJAR) → 加入三個類別
  3. Bean Type:Session, Stateless, Class: ConverterBean, Name: ConverterEJB
  4. Remote Home: ConverterHome, Remote: Converter

建立應用程式客戶端

原始碼:ConverterClient.java


public class ConverterClient {
    public static void main(String[] args) {
        try {
            Context initial = new InitialContext();
            Object objref = initial.lookup("java:comp/env/ejb/SimpleConverter");
            ConverterHome home = (ConverterHome) PortableRemoteObject.narrow(objref, ConverterHome.class);
            Converter currencyConverter = home.create();
            BigDecimal param = new BigDecimal("100.00");
            BigDecimal amount = currencyConverter.dollarToYen(param);
            System.out.println(amount); // 12160.00
            amount = currencyConverter.yenToEuro(param);
            System.out.println(amount); // 0.77
        } catch (Exception ex) { ex.printStackTrace(); }
    }
}

打包客戶端

  • DeployTool:New Application Client → 加入 ConverterClient.class
  • Main Class: ConverterClient, Callback Handler: container-managed
  • EJB Refs:Coded Name ejb/SimpleConverter, Type Session, Interface Remote, Home ConverterHome, Remote Converter

建立 Web Client (JSP)

  • index.jsp (無需編譯)
  • DeployTool:New Web Component → New WAR (ConverterWAR) → 加入 index.jsp
  • EJB Refs:Coded Name ejb/TheConverter (其他同客戶端)

指定 JNDI 名稱

  • 選擇 ConverterApp → JNDI Names 標籤 → 全部輸入 MyConverter

部署與執行

  1. Tools → Deploy → Return Client JAR → 指定輸出路徑
  2. 確認 JNDI Name → WAR Context Root: converter

執行應用程式客戶端


cd j2eetutorial/examples/src/ejb/converter
set APPCPATH=ConverterAppClient.jar
runclient -client ConverterApp.ear -name ConverterClient -textauth
# user: guest / pass: guest123
# 輸出: 12160.00 / 0.77

執行 Web Client


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