明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

對(duì)于客戶端訪問(wèn)EJB之類(lèi)問(wèn)題 的一般性回答

[摘要]EJB是一個(gè)布署在App server上的服務(wù)器端組件客戶端通過(guò)JNDI來(lái)找到并定位它,然后訪問(wèn)它的方法但我們想想,Client端怎么才能找到EJB呢?它放在哪呢?舉個(gè)簡(jiǎn)單的例子,你想找一個(gè)在北京聯(lián)想公司的叫李大的人,你該怎么找呢?首先,EJB是能布署在任何Server(包括internet上任何...
EJB是一個(gè)布署在App server上的服務(wù)器端組件
客戶端通過(guò)JNDI來(lái)找到并定位它,然后訪問(wèn)它的方法

但我們想想,Client端怎么才能找到EJB呢?它放在哪呢?
舉個(gè)簡(jiǎn)單的例子,你想找一個(gè)在北京聯(lián)想公司的叫李大的人,你該怎么找呢?
首先,EJB是能布署在任何Server(包括internet上任何一臺(tái)Server)上,這就是分布式計(jì)算,也就是說(shuō),你找李大,先要知道去哪找,因?yàn)榻欣畲蟮娜丝赡軙?huì)有很多,你在找以前已經(jīng)知道李大是在北京聯(lián)想(就象已經(jīng)知道Server的ip/port及其它應(yīng)該告訴Client的屬性),也就是說(shuō),你在找EJB的時(shí)候,應(yīng)該告訴你的Client端這些應(yīng)有的App Server的屬性,這一般是放在一個(gè)Properties 中的,這些加上JNDI的名字,你的Client端就能找到你的EJB了

你會(huì)問(wèn),哪些屬性呀,如何做呢?
用以下兩個(gè)方法(還有更多的方法)可以得到具體的代碼
1、去看看 Mastering EJB這本書(shū),里邊有簡(jiǎn)潔而高效的范例代碼
2、用你的IDE生成一個(gè)Client端,在里邊有詳細(xì)的代碼

建議,先看1中的代碼,再用2生成代碼,然后根據(jù)1與2寫(xiě)一個(gè)自已的方法
當(dāng)然,類(lèi)似的代碼在網(wǎng)上成千上萬(wàn)

你的問(wèn)題的根源,沒(méi)有去了解EJB的體系結(jié)構(gòu),建議再看看相關(guān)的資料

附我的在wbl51中用的方法

/** 返回定位EJB對(duì)象所必需的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);
}