對于客戶端訪問EJB之類問題 的一般性回答
發表時間:2024-06-19 來源:明輝站整理相關軟件相關文章人氣:
[摘要]EJB是一個布署在App server上的服務器端組件客戶端通過JNDI來找到并定位它,然后訪問它的方法但我們想想,Client端怎么才能找到EJB呢?它放在哪呢?舉個簡單的例子,你想找一個在北京聯想公司的叫李大的人,你該怎么找呢?首先,EJB是能布署在任何Server(包括internet上任何...
EJB是一個布署在App server上的服務器端組件
客戶端通過JNDI來找到并定位它,然后訪問它的方法
但我們想想,Client端怎么才能找到EJB呢?它放在哪呢?
舉個簡單的例子,你想找一個在北京聯想公司的叫李大的人,你該怎么找呢?
首先,EJB是能布署在任何Server(包括internet上任何一臺Server)上,這就是分布式計算,也就是說,你找李大,先要知道去哪找,因為叫李大的人可能會有很多,你在找以前已經知道李大是在北京聯想(就象已經知道Server的ip/port及其它應該告訴Client的屬性),也就是說,你在找EJB的時候,應該告訴你的Client端這些應有的App Server的屬性,這一般是放在一個Properties 中的,這些加上JNDI的名字,你的Client端就能找到你的EJB了
你會問,哪些屬性呀,如何做呢?
用以下兩個方法(還有更多的方法)可以得到具體的代碼
1、去看看 Mastering EJB這本書,里邊有簡潔而高效的范例代碼
2、用你的IDE生成一個Client端,在里邊有詳細的代碼
建議,先看1中的代碼,再用2生成代碼,然后根據1與2寫一個自已的方法
當然,類似的代碼在網上成千上萬
你的問題的根源,沒有去了解EJB的體系結構,建議再看看相關的資料
附我的在wbl51中用的方法
/** 返回定位EJB對象所必需的Context */
private Context getInitialContext()throws javax.naming.NamingException{
Properties properties = null;
properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
properties.put(Context.PROVIDER_URL, url);
return new InitialContext(properties);
}