[摘要]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);
}
……