Java SEAM:如何在动态加载的类中获取EntityManager和Logger?

Java SEAM:如何在动态加载的类中获取EntityManager和Logger?,java,dependency-injection,seam,entitymanager,Java,Dependency Injection,Seam,Entitymanager,我有一个每10分钟运行一次的后台服务 此服务向DB查询要执行的作业,以便根据作业(使用class.forName())加载具有不同业务逻辑的类。当然,它们实现了相同的接口 我声明这些类是SEAM组件,但当我尝试使用entityManager或Logger时,我得到了一个NPE 回答我自己的问题,我想这是因为Class.forName()在SEAM的注入机制下,它没有机会注入依赖项 我可能可以在我上完课后,自己注射这些药物来解决这个问题。有更好的方法吗 谢谢 您检查过如何使用吗 另一个资源: 我

我有一个每10分钟运行一次的后台服务

此服务向DB查询要执行的作业,以便根据作业(使用class.forName())加载具有不同业务逻辑的类。当然,它们实现了相同的接口

我声明这些类是SEAM组件,但当我尝试使用entityManager或Logger时,我得到了一个NPE

回答我自己的问题,我想这是因为Class.forName()在SEAM的注入机制下,它没有机会注入依赖项

我可能可以在我上完课后,自己注射这些药物来解决这个问题。有更好的方法吗

谢谢

您检查过如何使用吗

另一个资源:

我必须在几天内做类似的事情


请留下对你有用的评论;-)

您可以使用

Component.getInstance("entityManager") //You can inject whatever you want.
要使记录器正常工作,可以执行以下操作

 private static final LogProvider log = Logging.getLogProvider(MyClass.class);

我正在使用EJB3定时器。奇怪的是,我还没有遇到另一个问题中提到的“无上下文”问题。使用component.getInstance(字符串,布尔值)加载组件为我解决了这个问题,无需调用lyfecicle.beginCall()。。。无论如何,现在我可以使用EntityManager和Logger了。谢谢@Cleber Goncalves感谢您的反馈