我有一个用例,我想动态(=编程)创建无状态会话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。
任何想法?