动态和编程创建EJB3会话Bean

时间:2016-10-29 12:33:42

标签: java-ee cdi ejb-3.1 stateless-session-bean

我有一个用例,我想动态(=编程)创建无状态会话Bean(EJB3),而不是通过注释(@Stateless)声明性地创建无状态bean。

有没有办法告诉我的程序想要的EJB容器/ CDI:

  • 创建一个java实例;

  • 将实例动态注册为无状态EJB(包括任何元信息,例如事务上下文(哪个方法应该在哪个事务上下文中运行,哪个TxType(必需,支持,...))和

  • 还在命名上下文(JNDI / EJB名称)中注册它?

所以,简而言之:

我有自定义代码充当"无状态SB"生产者/提供者应该能够让容器知道它想要将新实例(类)注册为具有所有预期EJB行为(Tx拦截器等)的无状态SB。

所以我真正说的是:

  

我的代码知道如何实现需要的特定逻辑(通过代码)   被动态封装在属于SOME类的实例中   这不是使用@Stateless注释进行声明性注释的   将以这样的方式动态地(运行时)修饰,以表现为无状态会话   豆。

另一种解决方法,IMO:

在接口中定义将由bean实现的所有EJB特定元信息,但EJB3规范不允许您在接口级别声明@Stateless。应该在实现级别(bean)上声明@Stateless。

请注意:正是这个STATELESS ANNOTATED bean实现在我的情况下并不存在。因此,容器无法扫描代码,查找并将类注册为无状态bean。

任何想法?

0 个答案:

没有答案