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:
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:
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.