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); }
|