2 Replies Latest reply on Nov 9, 2006 11:42 AM by Jan Goyvaerts

    Deploy jbpm console. Help !

    Jan Goyvaerts Newbie

      Hi,

      I'm trying to deploy the latest jbpm console on a JBoss AS 4.0.5GA; as it would provide valuable information about the current state of the processes.

      Seeing in the forum the .ear approach is preferred, yesterday I've checked out the jbpm.3 module from cvs and built it. I managed to build the ear file, deploy it together with its configuration zip file, include the latest hsql.jar and backport-util-concurrent.jar, create the db, seed it with reference data and I can log in. I'm getting an exception though :

      12:39:35,386 ERROR [STDERR] Nov 9, 2006 12:39:35 PM com.sun.faces.lifecycle.LifecycleImpl phase
      WARNING: phase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@f7821d) threw exception: org.hibernate.HibernateException: Unable to locate current JTA transaction Unable to locate current JTA transaction
      org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:61)
      org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
      org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:103)
      org.jbpm.JbpmContext.getSession(JbpmContext.java:467)
      org.jbpm.webapp.bean.search.SearchControlBean.updateSearchResults(SearchControlBean.java:120)
      org.jbpm.webapp.listener.JbpmPhaseListener.applyFormBean(JbpmPhaseListener.java:106)
      org.jbpm.webapp.listener.JbpmPhaseListener.beforePhase(JbpmPhaseListener.java:64)
      com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:214)
      com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
      javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:67)
      org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:223)
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:59)
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
      org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
      org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
      org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
      org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
      org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
      org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
      org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
      org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
      org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
      org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
      org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
      org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      java.lang.Thread.run(Thread.java:595)
      


      It doesn't look it prevents the login, but it proves fatal when uploading a process file. As it looks related to database transactions, I guess the configuration of hibernate is wrong somewhere. I've tried a number a alternate configurations, but I can't get rid of the exception. It's probably no big deal, but I can't get it done. The datasource and usertransaction are present in the AS jndi view. So, that's not it either.

      Does anybody know what might the problem ? I'm including the configuration underneath.

      hibernate.cfg.xml
      <?xml version='1.0' encoding='utf-8'?>
      
      <!DOCTYPE hibernate-configuration PUBLIC
       "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
       "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
      
      <hibernate-configuration>
       <session-factory>
      
       <!-- hibernate dialect -->
       <property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property>
      
       <!-- JDBC connection properties (begin) ===
       <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property>
       <property name="hibernate.connection.url">jdbc:hsqldb:mem:jbpm</property>
       <property name="hibernate.connection.username">sa</property>
       <property name="hibernate.connection.password"></property>
       ==== JDBC connection properties (end) -->
      
       <property name="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</property>
      
       <!-- JBoss transaction manager lookup (begin) -->
       <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
       <!-- JBoss transaction manager lookup (end) -->
      
       <!-- DataSource properties (begin) -->
       <property name="hibernate.connection.datasource">java:/JbpmDS</property>
       <!-- DataSource properties (end) -->
      
       <!-- JTA transaction properties (begin) ===
       <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
       ==== JTA transaction properties (end) -->
       <property name="jta.UserTransaction">java:comp/UserTransaction</property>
      
       <!-- CMT transaction properties (begin) -->
       <property name="hibernate.transaction.factory_class">org.hibernate.transaction.CMTTransactionFactory</property>
       <property name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</property>
       <!-- CMT transaction properties (end) -->
      
       <!-- logging properties (begin) ===
       <property name="hibernate.show_sql">true</property>
       <property name="hibernate.format_sql">true</property>
       <property name="hibernate.use_sql_comments">true</property>
       ==== logging properties (end) -->
      
       <!-- ############################################ -->
       <!-- # mapping files with external dependencies # -->
       <!-- ############################################ -->
      
       <!-- following mapping file has a dependendy on -->
       <!-- 'bsh-{version}.jar'. -->
       <!-- uncomment this if you don't have bsh on your -->
       <!-- classpath. you won't be able to use the -->
       <!-- script element in process definition files -->
       <mapping resource="org/jbpm/graph/action/Script.hbm.xml"/>
      
       <!-- following mapping files have a dependendy on -->
       <!-- 'jbpm-identity.jar', mapping files -->
       <!-- of the pluggable jbpm identity component. -->
       <!-- Uncomment the following 3 lines if you -->
       <!-- want to use the jBPM identity mgmgt -->
       <!-- component. -->
      
       <mapping resource="org/jbpm/identity/User.hbm.xml"/>
       <mapping resource="org/jbpm/identity/Group.hbm.xml"/>
       <mapping resource="org/jbpm/identity/Membership.hbm.xml"/>
      
       <!-- following mapping files have a dependendy on -->
       <!-- the JCR API -->
       <!-- jcr mappings (begin) ===
       <mapping resource="org/jbpm/context/exe/variableinstance/JcrNodeInstance.hbm.xml"/>
       ==== jcr mappings (end) -->
      
      
       <!-- ###################### -->
       <!-- # jbpm mapping files # -->
       <!-- ###################### -->
      
       <!-- hql queries and type defs -->
       <mapping resource="org/jbpm/db/hibernate.queries.hbm.xml" />
      
       <!-- graph.def mapping files -->
       <mapping resource="org/jbpm/graph/def/ProcessDefinition.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/Node.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/Transition.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/Event.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/Action.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/SuperState.hbm.xml"/>
       <mapping resource="org/jbpm/graph/def/ExceptionHandler.hbm.xml"/>
       <mapping resource="org/jbpm/instantiation/Delegation.hbm.xml"/>
      
       <!-- graph.node mapping files -->
       <mapping resource="org/jbpm/graph/node/StartState.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/EndState.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/ProcessState.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/Decision.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/Fork.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/Join.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/State.hbm.xml"/>
       <mapping resource="org/jbpm/graph/node/TaskNode.hbm.xml"/>
      
       <!-- context.def mapping files -->
       <mapping resource="org/jbpm/context/def/ContextDefinition.hbm.xml"/>
       <mapping resource="org/jbpm/context/def/VariableAccess.hbm.xml"/>
      
       <!-- taskmgmt.def mapping files -->
       <mapping resource="org/jbpm/taskmgmt/def/TaskMgmtDefinition.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/def/Swimlane.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/def/Task.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/def/TaskController.hbm.xml"/>
      
       <!-- module.def mapping files -->
       <mapping resource="org/jbpm/module/def/ModuleDefinition.hbm.xml"/>
      
       <!-- bytes mapping files -->
       <mapping resource="org/jbpm/bytes/ByteArray.hbm.xml"/>
      
       <!-- file.def mapping files -->
       <mapping resource="org/jbpm/file/def/FileDefinition.hbm.xml"/>
      
       <!-- scheduler.def mapping files -->
       <mapping resource="org/jbpm/scheduler/def/CreateTimerAction.hbm.xml"/>
       <mapping resource="org/jbpm/scheduler/def/CancelTimerAction.hbm.xml"/>
      
       <!-- graph.exe mapping files -->
       <mapping resource="org/jbpm/graph/exe/Comment.hbm.xml"/>
       <mapping resource="org/jbpm/graph/exe/ProcessInstance.hbm.xml"/>
       <mapping resource="org/jbpm/graph/exe/Token.hbm.xml"/>
       <mapping resource="org/jbpm/graph/exe/RuntimeAction.hbm.xml"/>
      
       <!-- module.exe mapping files -->
       <mapping resource="org/jbpm/module/exe/ModuleInstance.hbm.xml"/>
      
       <!-- context.exe mapping files -->
       <mapping resource="org/jbpm/context/exe/ContextInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/TokenVariableMap.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/VariableInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/ByteArrayInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/DateInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/DoubleInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/HibernateLongInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/HibernateStringInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/LongInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/NullInstance.hbm.xml"/>
       <mapping resource="org/jbpm/context/exe/variableinstance/StringInstance.hbm.xml"/>
      
       <!-- job mapping files -->
       <mapping resource="org/jbpm/job/Job.hbm.xml"/>
       <mapping resource="org/jbpm/job/Timer.hbm.xml"/>
       <mapping resource="org/jbpm/job/ExecuteNodeJob.hbm.xml"/>
       <mapping resource="org/jbpm/job/ExecuteActionJob.hbm.xml"/>
      
       <!-- taskmgmt.exe mapping files -->
       <mapping resource="org/jbpm/taskmgmt/exe/TaskMgmtInstance.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/exe/TaskInstance.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/exe/PooledActor.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/exe/SwimlaneInstance.hbm.xml"/>
      
       <!-- logging mapping files -->
       <mapping resource="org/jbpm/logging/log/ProcessLog.hbm.xml"/>
       <mapping resource="org/jbpm/logging/log/MessageLog.hbm.xml"/>
       <mapping resource="org/jbpm/logging/log/CompositeLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/ActionLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/NodeLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/ProcessInstanceCreateLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/ProcessInstanceEndLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/ProcessStateLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/SignalLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/TokenCreateLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/TokenEndLog.hbm.xml"/>
       <mapping resource="org/jbpm/graph/log/TransitionLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/VariableLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/VariableCreateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/VariableDeleteLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/VariableUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/ByteArrayUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/DateUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/DoubleUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/HibernateLongUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/HibernateStringUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/LongUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/context/log/variableinstance/StringUpdateLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/TaskLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/TaskCreateLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/TaskAssignLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/TaskEndLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/SwimlaneLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/SwimlaneCreateLog.hbm.xml"/>
       <mapping resource="org/jbpm/taskmgmt/log/SwimlaneAssignLog.hbm.xml"/>
      
       </session-factory>
      </hibernate-configuration>
      


      jbpm.cfg.xml
      <jbpm-configuration>
      
       <jbpm-context>
       <service name="persistence">
       <factory>
       <bean class="org.jbpm.persistence.db.DbPersistenceServiceFactory">
       <field name="isCurrentSessionEnabled"><true /></field>
       <field name="isTransactionEnabled"><false /></field>
       </bean>
       </factory>
       </service>
       <service name="message">
       <factory>
       <bean class="org.jbpm.msg.jms.JmsMessageServiceFactoryImpl">
       <field name="connectionFactoryJndiName"><string value="java:/JmsXA"/></field>
       <field name="destinationJndiName"><string value="queue/JbpmCommandQueue"/></field>
       </bean>
       </factory>
       </service>
       <service name="scheduler" factory="org.jbpm.scheduler.ejbtimer.EjbSchedulerServiceFactory" />
      
       <service name="tx" factory="org.jbpm.tx.TxServiceFactory" />
       <service name="logging" factory="org.jbpm.logging.db.DbLoggingServiceFactory" />
       <service name="authentication" factory="org.jbpm.security.authentication.DefaultAuthenticationServiceFactory" />
       </jbpm-context>
      
       <!-- configuration property used by persistence service impl org.jbpm.persistence.db.DbPersistenceServiceFactory -->
       <string name="resource.hibernate.cfg.xml" value="hibernate.cfg.xml" />
      
       <!-- configuration resource files pointing to default configuration files in jbpm-jpdl.jar -->
       <string name="resource.business.calendar" value="org/jbpm/calendar/jbpm.business.calendar.properties" />
       <string name="resource.default.modules" value="org/jbpm/graph/def/jbpm.default.modules.properties" />
       <string name="resource.converter" value="org/jbpm/db/hibernate/jbpm.converter.properties" />
       <string name="resource.action.types" value="org/jbpm/graph/action/action.types.xml" />
       <string name="resource.node.types" value="org/jbpm/graph/node/node.types.xml" />
       <string name="resource.parsers" value="org/jbpm/jpdl/par/jbpm.parsers.xml" />
       <string name="resource.varmapping" value="org/jbpm/context/exe/jbpm.varmapping.xml" />
       <string name="resource.mail.templates" value="jbpm.mail.templates.xml" />
      
       <long name="jbpm.msg.wait.timout" value="5000" singleton="true" />
       <int name="jbpm.byte.block.size" value="1024" singleton="true" />
       <string name="jbpm.mail.smtp.host" value="localhost" />
       <bean name="jbpm.task.instance.factory" class="org.jbpm.taskmgmt.impl.DefaultTaskInstanceFactoryImpl" singleton="true" />
       <bean name="jbpm.variable.resolver" class="org.jbpm.jpdl.el.impl.JbpmVariableResolver" singleton="true" />
       <bean name="jbpm.mail.address.resolver" class="org.jbpm.identity.mail.IdentityAddressResolver" singleton="true" />
      
       <!-- note that the default job executor needs to be overwritten with a null value -->
       <null name="jbpm.job.executor" />
      
      </jbpm-configuration>