【发布时间】:2013-10-16 07:46:04
【问题描述】:
我在 netbeans 中有一个 Java Web 服务模块和 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 类,当我尝试使用它从其父pojo 类访问TransactionManager 类时 @EJB 事务管理器事务管理器; 这个对象也返回了 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);
}
}
【问题讨论】:
标签: jakarta-ee jpa ejb entitymanager