Version 18

    This how-to outlines the necessary steps to get jBPM 3.2 working with Tomcat 5.5 and Oracle 10g Express Edition 10.2.0 xe

     

     

     

     

    It has been tested with the following environment:

     

    Tomcat 5.5.20

     

    Oracle Express Edition 10g xe

     

    jBPM 3.2.GA

     

     

     

    1. Create schema and tables in Oracle 10g express edition (xe)

     

    - create a new user (jbpm) and assign a schema jbpm with the good rights on the database

     

    - connect with this user

     

    - Run the oracle script jbpm-jpdl-3-suite.2.GA\db\jbpm.jpdl.oracle.sql in sqlplus console.

     

    +All the steps i did with the oracle webapp oracle webapp , it works very well... +

     

    2. Prepare your jBPM archive

     

    - download the jbpm-jpdl-suite-3.2.GA.zip (extract)

     

     

     

     

    - copy the war file jbpm-jpdl-3.2.GA\deploy\jbpm-console.war in $CATALINA_HOME\webapps\

    (you can decompress the file by yourself/launch tomcat the first time it will decompress the file automatically and delete the war file)

     

     

     

     

    - modify the hibernate.cfg.xml in the $CATALINA_HOME\webapps\jbpm-console\WEB-INF\classes file (you can also find the file in the config directory in jbpm-jpdl-3.2.GA\config)

     

     

     

     

    These the part of hibernate.cfg.xml i have modified

     

     

     <!-- SQL dialect -->
        <property name="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</property>     
    
     <!-- JDBC connection properties (begin) -->
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:xe</property>
        <property name="hibernate.connection.username">jbpm</property>
        <property name="hibernate.connection.password">jbpm</property>
     <!-- JDBC connection properties (end) -->
    
     <!-- JTA transaction properties (begin) -->
     <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    

     

     

     

     

    - copy all the librairies in jbpm-jpdl-3.2.GA\lib\.jar in my $CATALINA_HOME\webapps\jbpm-console\WEB-INF\lib

     

     

     

    - Don't forget to copy the ojdb14.jar (oracle driver) in $CATALINA_HOME\webapps\jbpm-console\WEB-INF\lib

     

     

    + You can find the drivers here => Oracle jdbc driver or in you oracle database 10 g express edition +

     

     

     

     

     

    3. Setup a User in Context Tomcat

     

     

    3.1 Tomcat user authentication

     

     

     

    - jBPM specific users and roles in $CATALINA_HOME/conf/tomcat-users.xml

     

     

    ...
      <role rolename="manager"></role>
      <role rolename="admin"></role>
      <role rolename="participant"></role>
    
      <user username="ernie" password="ernie" roles="participant,manager,administrator"></user>
      <user username="bert" password="bert" roles="participant"></user>
    ...
    

     

     

     

     

    By default, it use the tomcat user authentication. Nevertheless, you can setup user with the database.

     

     

     

    3.2 User database (JDBC Realm in Tomcat based on Jbpm On Tomcat - Real Context )

     

    - Create a file jbpm-console.xml in $CATALINA_HOME/conf/Catalina/localhost similar to

    <Context>
    <Realm  className="org.apache.catalina.realm.JDBCRealm" 
         driverName="com.mysql.jdbc.Driver"
         connectionURL="jdbc:mysql://localhost:3306/jbpm32"
         connectionName="jbossjbpm" 
         connectionPassword="jbossjbpm"
         userTable="JBPM_ID_USER" 
         userNameCol="NAME_" 
         userCredCol="PASSWORD_"
         userRoleTable="JBPM_ID_MEMBERSHIP" 
         roleNameCol="ROLE_" ></Realm>
    </Context>     
    

     

    - Run the sql script for update oracle database

    update jbpm_id_membership j
    set j.NAME_ = (SELECT u.NAME_ from jbpm_id_user u where j.USER_ = u.ID_)
    
    
    update jbpm_id_membership j
    set j.ROLE_ = (SELECT g.NAME_ from jbpm_id_group g where j.GROUP_ = g.ID_)
    

     

     

    And for populate the database => Use Hibernate  ToCreate Jbpm DB

    - Run the task (method) loadEntities and comment the line in CreateDb.java  << dbp.createSchema() >> if the database already exist.

     

     

    4. Finish

     

     

    - run tomcat and connect to http://localhost:8080/jbpm-console

     

     

     

     

    +

    Note : Now you should be able to run jBPM default web app in Tomcat and login with the username/password from tomcat-users.xml (ernie/ernie will work).

    +

     

     

    This is the original post in the jbpm forum => Tomcat 5.5 - Jbpm 3.2 - Starting failed