使用WebLogic JNDI 將 Java 用戶端串連到單個伺服器

來源:互聯網
上載者:User

 

要與 WebLogic Server 互動,Java 用戶端必須能夠擷取某個遠程對象的對象引用,並能夠調用對該對象的操作。要完成此操作,用戶端應用程式代碼必須執行下列步驟:

1、設定 InitialContext的 JNDI 環境屬性。

    清單 3-1 說明如何使用 Context.INITIAL_CONTEXT_FACTORY 屬性和 Context.PROVIDER_URL 屬性擷取上下文。

清單 3-1 擷取上下文

Context ctx = null; 

Hashtable ht = new Hashtable(); 

ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory"); 

ht.put(Context.PROVIDER_URL, "t3://localhost:7001");

try {

   ctx = new InitialContext(ht);

   // 使用程式中的上下文

  }  catch (NamingException e) {

    // 發生故障

  }  finally {

    try {ctx.close();}

    catch (Exception e) {

      // 發生故障

    }

  } 

2、從伺服器端對象建立上下文。

也可能需要從在 WebLogic伺服器的 JAVA 虛擬機器上執行個體化的對象(EJB)建立上下文。使用伺服器端對象時,不需要指定 Context.PROVIDER_URL 屬性。只有要以特定使用者登入時,才需要使用者名稱和密碼。

要從伺服器端對象建立上下文,首先必須建立一個 InitialContext,如下所示:

  Context ctx = new InitialContext();不需要指定工廠或提供者 URL。預設情況下,上下文建立為Context 並串連到本地命名服務。

3、使用上下文尋找 WebLogic Server 名稱空間中的已命名物件。

 try {

     ServiceBean bean = (ServiceBean)ctx.lookup("ejb.serviceBean");

//傳遞到 lookup() 方法的參數是包含所需對象名稱的字串。

  }catch (NameNotFoundException e) {

    // 綁定不存在

  }catch (NamingException e) {

    // 發生故障

  }

4、使用已命名物件來擷取遠程對象的引用,並調用對遠程對象的操作。

EJB 用戶端應用程式從 EJB Home 中擷取對 EJB 遠程對象的對象引用。

清單 3-4 包含擷取遠程對象、而後對該對象調用方法的程式碼片段。

ServiceBean bean = ServiceBean.Home.create("ejb.ServiceBean");

Servicebean.additem(66);

5、關閉上下文。

BEA 系統建議用戶端使用上下文完成工作後,應當關閉上下文,以釋放資源和避免記憶體流失。BEA 建議使用 finally{} 塊並封裝 try{} 塊中的 close() 方法。如果嘗試關閉一個因錯誤而從未執行個體化的上下文,則 Java 用戶端應用程式會引發異常。在清單 3-5 中,用戶端將關閉上下文,並釋放正在使用的資源。

清單 3-5 關閉上下文

try {

  ctx.close();

} catch () {

//發生故障

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.