ステートレスEJBで2つのPUを使用しており、それぞれが1つのメソッドで呼び出されます。
@PersistenceContext(unitName="PU")
private EntityManager em;
@PersistenceContext(unitName="PU2")
private EntityManager em2;
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW )
public void getCandidates(final Integer eventId) throws ControllerException {
ElectionEvent electionEvent = em.find(ElectionEvent.class, eventId);
...
Person person = getPerson(candidate.getLogin());
...
}
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW )
private Person getPerson(String login) throws ControllerException {
Person person = em2.find(Person.class, login);
return person;
}
これらのメソッドには、この例外を回避するためにREQUIRES_NEWトランザクションの注釈が付けられています。javaFXアプレットからこれらのメソッドを呼び出していたとき、すべてが期待どおりに機能しました。現在、JAX-RS Webサービスからそれらを呼び出そうとしています(どちらの場合もejbが初期コンテキストで検索されたため、論理的な違いは見られません)。この例外が発生し続けます。Glassfish 2.1接続プールでXADatasourceを設定すると、em2でnullpointer例外が発生しました。
次に何を試すべきかアイデアはありますか?
よろしく