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