[jboss-user] [EJB 3.0] - Retrieve the current transaction id in an session bean

benc do-not-reply at jboss.com
Thu Dec 13 16:13:44 EST 2007


Part of my application's requirements involve me saving the transaction id of some operations.  I am using a CMT StatelessSessionBean.  I thought that I could get the id via entityManager.getTransaction(), but that yields the following IllegalStateException.   Is there another way to get to this information without switching to user managed transactions?


  | java.lang.IllegalStateException: Illegal to call this method from injected, managed EntityManager
  |  	at org.jboss.ejb3.entity.TransactionScopedEntityManager.getTransaction(TransactionScopedEntityManager.java:226)
  |  	at com.noverant.service.audit.StatelessAuditService.addEntry(StatelessAuditService.java:69)
  |  	at sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source)
  |  	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  |  	at java.lang.reflect.Method.invoke(Method.java:597)
  |  	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
  | ...
  | 

Relevant portions of the class that is generating this error:

  | package com.noverant.service.audit;
  | 
  | import ...
  | 
  | @Stateless (name="AuditService")
  | public class StatelessAuditService implements AuditService
  | {
  | 	protected EntityManager		entityManager	= null;
  | 	protected SessionContext	sessionContext	= null;
  | 
  | 	@PersistenceContext(unitName = "nets-system")
  | 	public void setEntityManager(EntityManager entityManager)
  | 	{
  | 		this.entityManager = entityManager;
  | 	}
  | 
  | 	@Resource
  | 	public void setSessionContext(SessionContext sessionContext)
  | 	{
  | 		this.sessionContext = sessionContext;
  | 	}
  | 
  | 	public void addEntry(AuditEntry ae)
  | 	{
  | 		String transactionId = entityManager.getTransaction().toString();
  | 	}
  | 
  | }
  | 

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4112726#4112726

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4112726



More information about the jboss-user mailing list