我正在使用 OpenEJB (TomEE++) 容器开发 EJB 项目。有一个会话 bean,其 JNDI 查找名称需要在代码中进行控制。
@Stateless(mappedName="SlideService", name="SlideService")
public class SlideService {
public Map<Category, List<SlideShow>> fetchSlideShowsBycategory() {
// TODO Auto-generated method stub
return null;
}
public SlideShow fetchSlideShow(long id) {
// TODO Auto-generated method stub
return null;
}
public List<SlideShow> fetchSlideShowsByTitle(String title) {
// TODO Auto-generated method stub
return null;
}
}
我的问题是,这个 bean 绑定的名称是 'global/slides/SlideService'
OpenEJB 似乎使用了应用程序名称,尽管我没有特别提到它。
这会损害便携性吗?是否有可能其他容器可能不使用应用程序名称?
使用 name 和 mappedName 属性是控制无状态 bean 名称的正确方法,还是有其他(更好的)方法?