netbeans で JUnit を使用してステートレス Bean をテストしようとしています。この Bean は EntityManager を使用します。
@Stateless
public class myEjb{
@PersistenceContext
private EntityManager em;
public MyResult getResult(){
return em.find(...);
}
}
次に、テストクラスを作成します。
public class myTest{
private static EJBContainer ec;
private static Context ctx;
@BeforeClass
public static void setUpClass(){
ec = EJBContainer.createEJBContainer();
ctx = ec.getContext();
}
....
}
テストを実行すると、機能しません。次のメッセージが表示されます: Invalid resource : mydb__pm この行を実行するとエラーが発生します:
ec = EJBContainer.createEJBContainer();
エンティティ マネージャを削除して Bean を変更すると、機能します。それで、エンティティマネージャーに問題があるようです。私の persistence.xml ファイルは単純です。
<persistence version="2.0" ...>
<persistence-unit name="MetisDemoPU" transaction-type="JTA">
<jta-data-source>MyDb</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
最後に、EJB (エンティティーマネージャーを使用) を呼び出す JSF マネージド Bean を作成すると、それが機能します。
@ManagedBean
@RequestScoped
public class myManagedBean{
@EJB
private OfferEjb offerEjb;
...
}
どんな助けでも大歓迎です!