首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1接口2实现和EJB异常

1接口2实现和EJB异常
EN

Software Engineering用户
提问于 2013-02-24 11:10:17
回答 2查看 5K关注 0票数 1

在我的JavaEE项目中,我有这样一个接口:

代码语言:javascript
复制
@Local
public interface DataAccess { ... }

两个无状态bean实现了它:

代码语言:javascript
复制
@Stateless
public class DataAccess_Online implements DataAccess { ... }

@Stateless
public class DataAccess_Offline implements DataAccess { ... }

我有个例外:

无法解析引用本地ejb-参考.因为在具有接口...DataAccess的应用程序中有两个ejb。

问题很明显,可能只有一个实现DataAccess的类。但如果我能用两杯的话会很方便的。在客户机中,我只想使用接口DataAccess,所以我不必在代码中区分在线或脱机,它们都提供了相同的方法。

在客户机中,我有一个依赖项注入:

代码语言:javascript
复制
@EJB
DataAccess da;

我明白这是DataAccess的两个实现的问题,但是我应该改变什么来使它工作呢?客户端总是以在线版本的DataAccess开始,但是过了一段时间,他可以请求离线版本,所以离线版本只需要相同的接口,如果我需要一个DataAccess注入,它将永远是在线版本。

如何将两个接口实现与@EJB依赖项注入结合使用?

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2013-02-24 14:55:30

您可以使用:

代码语言:javascript
复制
@Stateless(name="online")
public class DataAccess_Online implements DataAccess { ... }

@EJB(beanName="online")
DataAccess da;
票数 5
EN

Software Engineering用户

发布于 2013-02-24 14:31:35

解决方案很简单,我只需要介绍一个新的界面:

代码语言:javascript
复制
public interface DataAccessOffline extends DataAccess

错误消失了,我可以使用@EJB注入DataAccess,但是我仍然可以在在线和离线实现之间切换。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/188227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档