首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenEJB -排除单个beans

OpenEJB -排除单个beans
EN

Stack Overflow用户
提问于 2017-06-21 19:46:08
回答 1查看 408关注 0票数 1

我正在使用junit和OpenEJB容器测试我的应用程序,以便为我的bean提供上下文。它从类路径中找到所有bean并启动它们。不幸的是,有一些bean我想从上下文中删除,这样我就可以用其他实现替换这些bean,模拟某些功能。

我知道openejb.deployments.classpath.exclude的财产。我甚至尝试像this SO question中建议的那样使用它,如下所示的properties.put("openejb.deployments.classpath.exclude", ".*/CommonCache.*");

OpenEJB可以看到此属性,但bean仍在启动,如下面的日志所示。

代码语言:javascript
复制
Using 'openejb.deployments.classpath.exclude=.*/CommonCacheBean.*'
Auto-deploying ejb CommonCacheBean: EjbDeployment(deployment-id=CommonCacheBean)
Jndi(name="java:global/ejbs/CommonCacheBean!my.package.ICommonCache")
Created Ejb(deployment-id=CommonCacheBean, ejb-name=CommonCacheBean, container=Default Stateless Container)

所以这就是我的问题。有没有办法从OpenEJB上下文中排除单个bean?无论是通过这种配置方式还是通过java代码中的手动操作来实现,对我来说都无关紧要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-28 13:55:16

如果有人感兴趣,我没有设法从上下文中删除bean。尽管上下文中有一个unbind()方法,但它似乎不能在OpenEJB上下文中工作。我成功地用rebind()手动替换了beans,但为时已晚,因为它们已经被注入到另一个beans中。

我解决问题的方法是在模拟实现中使用注释@Alternative。我还必须在beans.xml中添加条目,以显示容器这些bean,并将它们从@EJB注入到@Inject

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

https://stackoverflow.com/questions/44675177

复制
相关文章

相似问题

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