2 Replies Latest reply on Mar 23, 2011 11:03 AM by andyg

    WebLogic 10 : couldn't lookup 'UserTransaction' from jndi

    dtoch

      I'm trying to use JBPM 4.2 in WebLogic 10, but I get:

      org.jbpm.api.JbpmException: couldn't lookup 'UserTransaction' from jndi: Unable to resolve 'UserTransaction'. Resolved '': Unable to resolve 'UserTransaction'. Resolved ''
      at org.jbpm.pvm.internal.tx.jta.JtaTransaction.lookupFromJndi(JtaTransaction.java:137)
      at org.jbpm.pvm.internal.tx.jta.JtaTransaction.lookupJeeUserTransaction(JtaTransaction.java:116)
      at org.jbpm.pvm.internal.tx.jta.JtaRetryInterceptor.execute(JtaRetryInterceptor.java:42)
      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)
      at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)
      at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)
      at org.jbpm.pvm.internal.cfg.ProcessEngineImpl.checkDb(ProcessEngineImpl.java:177)
      at org.jbpm.pvm.internal.cfg.ProcessEngineImpl.buildProcessEngine(ProcessEngineImpl.java:170)

      In WebLogic the JNDI name is javax.transaction.UserTransaction, not UserTransaction. Apparently org.jbpm.pvm.internal.tx.jta.JtaTransaction contains a protected member userTransactionJndiName in order to pass another JNDI name then the default one which is for JBoss, but I'm not sure what's the correct/elegant way to override it. Should I use the JBPM Environment API for this, or should I customize the JBPM XML configurations?