An Ant script for direct deploying jBPM 5.2 using MySQL as back end has been implemented.

NB: Apache-Ivy is required in addition to Ant.

The script with instructions have been published at 4Share, and can be downloaded here.


To summarise the key observations of Tomcat / jBPM 5.2 installer which precipitated development of the above installer:

Tomcat 7

i) It should be recognised that Tomcat is not a J2EE application server, but is technically a servlet container.

(The implementation of JNDI on Tomcat which differs slightly from EE standard – ie. java:comp/env/… rather than java:comp/…, lack of any J2EE services in standard installation etc. are significant hints at this)

JBPM requires a J2EE application server – eg. JBoss AS / GlassFish / WebLogic / WebSphere etc.

ii) Tomcat can be made to behave like a J2EE server with careful configuration. A good demarcation point though is when application complexity reaches the point where a service bus is required.

iii) Tomcat is arguably the most popular servlet container on the market at moment – however – its success and strengths have clouded the important point that it is strictly not a J2EE application server.

Installation issues of JBPM into Tomcat are mainly rooted in this issue.

In order to configure Tomcat as a J2EE compliant container which can host JBPM – some J2EE services need to be set up on Tomcat. In particular a JTA: A good choice here is the transaction manager from Bitronix.

The above Ant installer will install Bitronix at the Tomcat Server level.

Bitronix only may be deployed by:

a) Configure Bitronix template files btm-config.properties, resources.properties (See the README file)

b) Run: ant install.bitronix.into.tomcat.7

Bitronix can be replaced with a transaction / pool manager of your choice – Bitronix is arguably the best choice in most cases though.

JBPM 5.2 Installer / Distribution – Tomcat

Now on to the issues with the jbpm installer and distribution from the Tomcat perspective:

i) The jBPM distribution is designed for JBoss AS server and the console / console-server packages include EL (expression language) libraries. These will conflict with those which are installed with Tomcat – the Tomcat EL should be preserved.

For Tomcat installation these should be removed from the WAR deployments.

ii) There is some confusion with respect to javassist jar in the config / config-server distributions.

The included jars should be dropped – and included into both config / config-server javassist-3.4.GA

The reason for this dependency is that Hibernate 3.4 is implicitly deployed as persistence layer in this distribution.

iii) There is a conflicting dom4j library – dom4j-1.6.jar deployed with the console / console-server packages. This should also be removed.

iv) It is not mentioned clearly that the parameter:

-Dreporting.needcontext=true

needs to be passed to the Tomcat JVM in order to allow the gtw-server to correctly instantiate the report module loader.

v) For the ‘Demo’ it is important to configure the human-server persistence correctly, and additionally address the includeantruntime issue during starting of this service.

Advertisements