[jboss-user] [JBoss jBPM] - How to call Seam SLSB from a jbpm-invoked action?

brombie do-not-reply at jboss.com
Tue Apr 1 21:39:53 EDT 2008


Hi all,

I posted this question at seamframework.org forum but haven't seen any answers so I'm trying my luck in this forum.

My seam project has the jbpm module enabled and I'm wondering how I can get my jbpm action handler to access a Seam component/object.

For example, in my jpdl, I have a transition which has an action handler pointing to test.transitionHandler class.

Inside the transitionHandler.class, I have something like below.  

Component comp = Seam.componentForName("fruitManager");
  | assert comp !=null;
  | FruitManager fm= (FruitManager) comp.newInstance();
  | fm.updateDescription(1, "Apple");

fruitManager is a name of a SLSB. updateDescription() simply updates the description field of the Fruit bean and persist it.

When executed, here's the stack trace that shows: 


17:53:34,406 WARN  [JDBCExceptionReporter] SQL Error: 0, SQLState: null
  | 17:53:34,406 ERROR [JDBCExceptionReporter] Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fffd:da4:47f28229:3b9 status: ActionStatus.ABORT_ONLY >); - nested throwable: (org.jboss.resource.JBossResourceException: Could not enlist in transaction on entering meta-aware object!; - nested throwable: (javax.transaction.SystemException: java.lang.Throwable: Unabled to enlist resource, see the previous warnings. tx=TransactionImple < ac, BasicAction: -3f57fffd:da4:47f28229:3b9 status: ActionStatus.ABORT_ONLY >))
  | 17:53:34,406 INFO  [DefaultLoadEventListener] Error performing load command
  | org.hibernate.exception.GenericJDBCException: Cannot open connection
  | 	at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
  | 	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
  | 	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
  | 	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
  | 	at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
  | 	at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
  | 	at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
  | 	at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
  | 	at org.hibernate.loader.Loader.doQuery(Loader.java:673)
  | 	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
  | 	at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
  | 	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
  | 	at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
  | 	at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
  | 	at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
  | 	at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
  | 	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
  | 	at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
  | 	at org.hibernate.ejb.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:174)
  | 	at org.jboss.ejb3.entity.TransactionScopedEntityManager.find(TransactionScopedEntityManager.java:171)
  | 	at org.jboss.seam.persistence.EntityManagerProxy.find(EntityManagerProxy.java:85)
  | 	at test.FruitManagerBean.updateDescription(ImageTicketManagerBean.java:739)

Note that the Seam application and JBPM are using different database schema.  They're also both configured to use XA transactions/driver.

Thanks for your help!

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

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



More information about the jboss-user mailing list