NetBeans に Java Web サービス モジュールと ejb モジュールがあります (エンタープライズ アプリケーションのすべての部分)。Web サービスは @EJB インジェクションを使用して ejb クラスを消費しています。ejb モジュール内には、エンタープライズ Bean ではない TransactionManager クラスがあります。ただの POJO クラスです。を使用して EntityManager を注入しようとしています
@PersistanceContext(unitName = "testPU")
EntityManager em;
ただし、em は常に null です。Bean から TransactionManager クラスを呼び出しています。Bean クラスで EntityManager 宣言を宣言すると、Bean クラスに問題なく挿入されます。しかし、POJO では常に null です。
EJB (バージョン JEE7 を使用) は初めてです。私を案内してもらえますか?
Shailendra への返信: 私の Bean と pojo は同じ jar ファイルにあり、bean.xml と persistence.xml があります。@Stateless と @Local を使用して、TransactionManager クラスを Bean として作成しようとしましたが、ejb クラスと TransactionManager クラスの間にいくつかの pojo クラスがあり、@EJB を使用してその親 pojo クラスから TransactionManager クラスにアクセスしようとしたときに、 TransactionManager 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);
}
}
MyComponentとしてPOJOクラスがあります
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);
}
}