Est-il possible d'utiliser la persistence à l'interieur d'un EJB ?
Je fais un test avec cette méthode, dans l'implémentation de mon EJB :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 @PersistenceContext(name="EJBAdditionPU") private EntityManager em; @Resource private UserTransaction trans; ...... public void save(Object o) { try { trans.begin(); em.persist(o); trans.commit(); }catch (Exception ex){ //trans.rollback(); ex.printStackTrace(); } }
Mais j'obtiens toujours une erreur de type :
java.lang.IllegalStateException: Operation not allowed.
at com.sun.enterprise.distributedtx.UserTransactionImpl.checkUserTransactionMethodAccess(UserTransactionImpl.java:112)
at com.sun.enterprise.distributedtx.UserTransactionImpl.begin(UserTransactionImpl.java:131)
lorsque j'effectue le "trans.begin()" sur mon objet UserTransaction....
Savez-vous d'où cela vient ?
Cela marche bien dans le cadre d'une simple application web sur glassfish, avec injection par l'annotation @PersistenceContext.
Partager