好日子家伙一个EJB,如何动态地查找在运行时
我有这样的场景,我有我的EJB3豆在一个jar文件,成功地部署到JBoss EAP-6.4。
然后我有另一个Web项目,查找这些EJB里面的REST POJO类。我目前可以使用@Inject和@EJB从web项目内部访问EJB,但我的用例是我不知道在运行时需要加载哪些bean,并且列表不是静态的,所以我可能需要查找10 EJB的或无特定要求等
我知道我可以使用可能
InitialContext.lookup( 'EJB:/ .....')
从Web项目中检索我的EJB bean,但是在那里一种我可以在没有往返(我相信)的情况下检索它们的方法,或者我正在寻找的方法是在运行时执行EJB查找的更加优雅的方式,就像静态类型化的@EJB和@Inject版本。
任何建议,非常感谢。
*************编辑********************
在我的REST POJO类我不我想要对任何@Inject或@EJB注解进行硬编码,而当我请求时,我会查找(因为没有更好的词)查找处理请求的EJB,因此所有决定都是在运行时真正做出的,如下图所示
@Path("/path")
public class TestService {
@GET("/{id}")
public String loadGetPath(@Param id int id){
//at this point i want to dynamically resolve the EJB based on
//the value of id
}
}
只是让“未知”的EJB实现共同的接口并注入是不是? – BalusC
@BalusC,感谢您的答案,但我已经这样做。而这并不能解决我的主要问题,即我想动态地在运行时执行查找,也是我希望在运行时动态查找的具体bean实现,而不是实际上为空的接口。 –
然后我不明白你的具体问题。如果提供了合适的实现,则注入接口应该可以很好地工作。 – BalusC