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

JBuilder 開發 CORBA Applet 完整實戰教學

     編輯:Java 程式設計入門

環境需求

步驟總覽

  1. 建立專案,設定 JDK 1.2
  2. 定義 IDL 介面
  3. 生成伺服器端骨架並實作
  4. 建立 Applet 客戶端
  5. 編譯打包 JAR
  6. 啟動 AppServer 與 Gatekeeper
  7. 部署 HTML/JAR 並測試

關鍵程式碼片段

IDL 定義

module Module1 {
    interface Interface1 {
        long operation1();
    };
};

伺服器端實作

public int operation1() {
    ServerMonitor.log("(" + _name + ") Interface1Impl.operation1()");
    return (int) System.currentTimeMillis();
}

Applet 客戶端核心

public class Applet1 extends JApplet {
    private Module1.Interface1 _interface1;
    private String _name = "Interface1";

    public void init() {
        jbInit();
        ORB orb = ORB.init(this, null);  // 關鍵:傳入 Applet 參考
        _interface1 = Module1.Interface1Helper.bind(orb, "/" + _name + "_poa", _name.getBytes());
    }

    void jButton1_actionPerformed(ActionEvent e) {
        jLabel1.setText(String.valueOf(_interface1.operation1()));
    }
}

部署關鍵檔案與指令

啟動 AppServer

ias -javahome c:\jbuilder4\jdk1.3

部署目錄檔案 (\Inprise\AppServer\html\public_html\)

  • untitled1.jar (專案打包)
  • vbjorb.jar (VisiBroker ORB 執行庫)
  • Applet1.html (原始產出)
  • jre-1_2_2_005-win.exe (Java Plug-in 安裝程式)

HTML 版本 1:標準 APPLET 標籤 (Applet2.html)

<APPLET CODEBASE="." 
        ARCHIVE="vbjorb.jar, untitled1.jar"
        CODE="untitled1.Applet1.class"
        WIDTH="400" HEIGHT="300">
    <PARAM NAME="org.omg.CORBA.ORBClass" VALUE="com.inprise.vbroker.orb.ORB">
    <PARAM NAME="vbroker.orb.alwaysTunnel" VALUE="true">
    <PARAM NAME="vbroker.orb.gatekeeper.ior" VALUE="">
</APPLET>

HTML 版本 2:OBJECT 標籤支援 Java Plug-in (Applet3.html)

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
        WIDTH="400" HEIGHT="300"
        codebase="https://127.0.0.1:8080/jre-1_2_2_005-win.exe#Version=1,2,2,0">
    <PARAM NAME="CODE" VALUE="untitled1.Applet1.class">
    <PARAM NAME="CODEBASE" VALUE=".">
    <PARAM NAME="ARCHIVE" VALUE="untitled1.jar, vbjorb.jar">
    <PARAM NAME="org.omg.CORBA.ORBClass" VALUE="com.inprise.vbroker.orb.ORB">
    <PARAM NAME="vbroker.orb.alwaysTunnel" VALUE="true">
    <PARAM NAME="vbroker.orb.gatekeeper.ior" VALUE="">
</OBJECT>

執行驗證步驟

  1. 啟動 Gatekeeper: start gatekeeper
  2. 取得 IOR: printior gatekeeper.ior (記錄 IP 位址)
  3. AppletViewer 測試: appletviewer https://[IP]:8080/Applet2.html
  4. IE 5 測試: https://[IP]:8080/Applet3.html

關鍵技術點解析

軟體版本備註
JBuilder4 Enterprise含 AppServer 4.1
JDK1.2 / 1.3專案設定指向 1.2
Java Plug-in1.2.2_005jre-1_2_2_005-win.exe
OSWindows 2000 Professional
瀏覽器IE 5

常見問題排查

  • ClassNotFoundException:確認 ARCHIVE 順序 (vbjorb.jar 優先)、大小寫
  • COMM_FAILURE:檢查 Gatekeeper 是否啟動、IOR 是否正確、防火牆埠口
  • NO_PERMISSION:Applet 未簽署或安全策略阻擋,需 .java.policy 授權
  • IE 顯示紅叉:Java Plug-in 未安裝、版本不符、codebase URL 錯誤

現代化遷移建議

CORBA/Java IDL 已逐漸被 REST/gRPC 取代。遷移路徑:

  1. IDL 介面 → Protobuf/gRPC 服務定義
  2. VisiBroker ORB → gRPC Java (Netty 傳輸)
  3. Applet 客戶端 → 獨立 JavaFX/Swing 應用或 Web 前端 (gRPC-Web)
  4. AppServer → Spring Boot / Quarkus 微服務
  5. Gatekeeper → API Gateway (Kong, Envoy, Spring Cloud Gateway)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目說明
ORB.init(this, null)Applet 環境下需傳入 Applet 參考以取得 CODEBASE
alwaysTunnel=true強制使用 HTTP 通道穿透防火牆 (IIOP over HTTP)
GatekeeperVisiBroker 防火牆代理,統一對外埠口 (預設 8080)
vbjorb.jar客戶端必備 ORB 實作,含 GIOP/IIOP 協定處理
Java Plug-in瀏覽器使用 Sun JVM 而非內建 JVM,確保 CORBA API 相容