Я использую 2 PU в EJB без сохранения состояния, и каждый из них вызывается одним способом:
@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 (я не вижу логической разницы, поскольку в обоих случаях ejb просматривался в начальном контексте), и я продолжаю получать это исключение. Когда я настраивал XADatasource в пулах соединений glassfish 2.1, я получал исключение nullpointer на em2.
Есть идеи, что попробовать дальше?
Привет