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