关于SessionBean调用的一个问题 (200分)

  • 主题发起人 Flintstone
  • 开始时间
F

Flintstone

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一些Session Bean 中封装了一些业务逻辑。比如 Bean1,Bean2,Bean3。
在这些Session Bean之前,我用另外一个Session Bean作为业务逻辑分派器,根据客户端传上来的功能号来调用不同的Bean。我现在有一个问题,我可以根据客户端传上来的功能号知道需要调用的Bean的名字,我如何去得到这个Bean的home的类型。从而可以去调用到我需要的业务逻辑。如果分数不够,我可以在加。
 
Bean1,Bean2,Bean3 是否在一个容器里 不在一个容器里 需要配置在查找jdni时 但你说的home类型 如果是你写的 你应该知道的呀 有什么问题吗?? 不明白??
 
在一个容器里,home的类型我也知道,我是从一个xml文件里取得的名字,问题的关键就是,我怎么才能根据从xml里得到的名字(字符串)得到相应的类型
 
那你可以做了一个对应关系的xml文件,在里面写明他们的对应关系 然后根据名字来 调用不同的session bean 不就结了
 
to 7syw
我就是这样做的啊,,现在问题就是我从xml里得到了名字,如何根据这个名字去调用啊。
如果,你有什么例子能不能给我看看。
 
是要高手才能解决啊,可是高手都不敢进来呢.......
 
没有列子
但我觉的这怎么会找不到那????
都在一个容器里的话 那你把其他的session bean 定义成本地接口,这样效率高些
然后把你的业务逻辑分派器定义成远程接口就可以了
自己随便写 大概思路就应该是这样的,希望对你有帮助
javax.naming.Context context;
dzsb.ejb.session.DjYhsz1Home djYhsz1Home=null;
dzsb.ejb.session.DjYhsz2Home djYhsz2Home=null;
dzsb.ejb.session.DjYhsz3Home djYhsz3Home=null;
private javax.naming.Context getinitContext()
{
try{
if (context==null) context = new javax.naming.InitialContext();
return context;
}
catch (Exception e)
{
throw new EJBException(e);
}
}
private void init(int i)
{
context= this.getinitContext();
try{
switch (i){
case 1:
if (this.djYhsz1Home==null)
this.djYhsz1Home = (dzsb.ejb.entity.DjYhsz1Home) context.lookup("DjYhsz1");
break;
case 2:
if (this.djYhsz2Home==null)
this.djYhsz2Home = (dzsb.ejb.entity.DjYhsz2Home) context.lookup("DjYhsz2");
break;
case 3:
if (this.djYhsz3Home==null)
this.djYhsz3Home = (dzsb.ejb.entity.DjYhsz3Home) context.lookup("DjYhsz3");
break;
}
}
catch (Exception e)
{

}
}
 
顶部