Salut,

j'essaie d'exécuter mon session bean mais malhuersement je reçois l'erreur suivant :


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
24
25
26
27
 
 
javax.ejb.EJBTransactionRolledbackException: Illegal to call this method from injected, managed EntityManager
	at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:87)
	at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
	at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:195)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:62)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
	at org.jboss.ejb3.mdb.MessagingContainer.localInvoke(MessagingContainer.java:245)
	at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.delivery(MessageInflowLocalProxy.java:268)
	at org.jboss.ejb3.mdb.inflow.MessageInflowLocalProxy.invoke(MessageInflowLocalProxy.java:138)
	at $Proxy165.onMessage(Unknown Source)
	at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:178)
	at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:891)
	at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:170)
	at org.jboss.mq.SpySession.run(SpySession.java:323)
	at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:237)
	at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
	at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
	at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalStateException: Illegal to call this method from injected, managed EntityManager
	at org.jboss.ejb3.entity.TransactionScopedEntityManager.getTransaction(TransactionScopedEntityManager.java:226)
	at org.jboss.seam.persistence.EntityManagerProxy.getTransaction(EntityManagerProxy.java:110)
	at 
	...

et voiçi comment est declaré mon bean :

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
24
25
26
27
28
29
 
 
@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
@Name("monbean")
public class MyFirstBean implements MonInterface{
	@Logger
	Log log;
 
	@PersistenceContext
	private EntityManager em;
 
 
	public MyFirstBean () {
	}
 
	public void start(Message msg) { // methode de mon interface
		try {
			em.getTransaction().begin(); // erreur a ce niveau 
 
			// ...mon traitement 
		} catch (Exception e) {
			log.error("Ooops! Exception", e);
		} finally {
			jbpmContext.close();
			em.getTransaction().commit();
		}
	}
}
et finalement mon interface est la suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
import javax.jms.Message;
 
public interface MonInterface{
    public void start(Message msg);
}

je ne comprends pas pourquoi j'ai cet erreur?

Merci