我有一个 Java Web 服务模块和 netbeans 中的 ejb 模块(企业应用程序的所有部分)。Web 服务正在使用 @EJB 注入来使用 ejb 类。在 ejb 模块中,我有一个不是企业 bean 的 TransactionManager 类。只是一个 POJO 类。我正在尝试使用注入 EntityManager
@PersistanceContext(unitName = "testPU")
EntityManager em;
但 em 始终为空。我从 bean 调用 TransactionManager 类,如果我在 bean 类中声明 EntityManager 声明,它在 bean 类中注入就好了。但在 POJO 中它始终为空。
我是 EJB 新手(使用版本 JEE7)。你能指导我吗?
回复 Shailendra :我的 bean 和 pojo 在同一个 jar 文件中,它有 bean.xml 和 persistence.xml。我尝试使用@Stateless 和@Local 将TransactionManager 类作为bean,但是在ejb 类和TransactionManager 类之间有一些pojo 类,当我尝试使用@EJB 从其父pojo 类访问TransactionManager 类时事务管理器事务管理器;这个对象也返回了 null。
亲爱的 Shilendra,感谢您的回复 下面是我的 EJB 课程
@Stateless
@Local(IMyService.class)
public class MyService extends MyBase implements IMyService
{
MyComponent component = null;
public void doSomething(X x)
{
component = new MyComponent();
component.doSomething(x);
}
}
我有一个 POJO 类作为 MyComponent
public class MyComponent extends MyBase implements IMyComponent
{
TransactionManager tManager = null;
public void doSomething(X x)
{
tManager = new TransactionManager();
tManager.doSomething(x);
}
}
TransactionManager 类是我希望为 PersistenceContext 完成依赖注入的类
public class TransactionManager extends MyBase implements ITransactionManager
{
@PersistenceContext(unitName="TestPU")
EntityManager em;
public void doSomething(X x)
{
em.persist(x);
}
}