Web Application Archive (WAR)

JABAWS Web Application aRchive can run on any host operating system that supports Java and Apache-Tomcat. JABAWS requires a Java web application server compliant with version 2.4 of the Java Servlet specification, and a Java 7 runtime environment. We recommend using an official Oracle Java 7 runtime environment, and Apache-Tomcat web application server version 8.5, but older Tomcat versions above 5.5 will work too.

Danger

The JABAWS WAR is not generally compatible with older Mac systems based on the PowerPC architecture, since Java 1.7 is not available to run JABAWS.

However JABAWS depends on a number of third party programs which are not available for all operating systems. In particular, not all web services are currently available for MS Windows platform. JABAWS comes with pre-compiled MS Windows and Linux x86 binaries, as well as the source code and build scripts necessary to recompile them.

To run JABAWS on the cluster you must have shared disk space accessible from all cluster nodes.


Installing

Tip

Check if you are running the recommended versions of Java and Apache-Tomcat.

JABAWS is distributed as a web application archive (WAR). To deploy JABAWS in Apache-Tomcat - simply drop the war file into the webapps directory of a running Tomcat, and it will do the rest. If you used this deployment procedure, do not remove the Jabaws WAR file, otherwise Tomcat will undeploy your application! The context path for your deployed application will be the same as the name of the war file. For example, assuming the Tomcat server is running on the localhost:8080 and jaba.war file is put into the <tomcat server root>/webapps directory, the deployed application from the jabaws.war file then can be accessed by this URL http://localhost:8080/jabaws.

For any other web application server, please follow your server’s specific deployment procedure for ‘WAR’ files. If you install JABAWS on a MS Windows machine, then at this point your JABAWS installation will already be up and running, and you can try its services out as described here in the documentation. If you install JABAWS on Linux you will need to compile the binaries for your system and set an executable flag for binaries (more details here and here).


Usage

Running many JABAWS instances on the same server

JABAWS is supplied as a Web Application aRchive which can be dealt with as any other web applications. So it is perfectly possible to run two JABAWS instances from the same server. Just make two different contexts on your application server and unpack JABAWS in both of them. For example if your server name is http://www.align.ac.uk, and the context names are public and private. Than one group of users could be given a URL http://www.align.ac.uk/public and another http://www.align.ac.uk/private. These contexts will be served by two independent JABAWS instances, and could be configured differently. If you keep local engine enabled, make sure you reduce the number of threads local engine is allowed to use to avoid overloading the server. Alternatively two completely separate web application server instances (e.g. Apache-Tomcat) could be used. This will give you a better resilience and more flexibility in memory settings.

JABAWS on a single server

You can run JABAWS on a single server. Obviously the capacity will be limited, but it may be sufficient for a small lab. Installed on a single server, JABAWS executes tasks in parallel, so the more cores the server has the more requests it will be able to handle.

JABAWS supported cluster batch management systems

JABAWS uses DRMAA v1.0 library to send and manage jobs on the cluster. DRMAA supports many different cluster job management systems. Namely Sun Grid Engine, Condor, PBS, GridWay, Globus 2/4, PBSPro, LSF. For up to date information please consult DRMAA web site. We found that DRMAA implementation differ from platform to platform and were trying to use only the basic functions. We have only tested JABAWS on Sun Grid Engine v 6.2. Please let use know if you have any experience of running JABAWS on other platforms.


Troubleshooting

If Apache-Tomcat fails to deploy jabaws.war file:

  • Make sure Tomcat has sufficient access rights to read your war file.
  • Restart the Tomcat, sometimes it will not restart after the new war file is added without restart
  • If Tomcat still refuses to unpack the war file, unpack it manually into web application folder (the war file is just a zip archive). Restart the Tomcat.

If Tomcat undeployes your application:

If the war file is automatically removed by Tomcat use an explicit application descriptor. Add a context descriptor file into <tomcatRoot>conf/Catalina/localhost directory. Name your context file the same as your application folder e.g. if your JABAWS resides in webapps/jabaws folder, then call the context file jabaws.xml. Below is an example of content this file might have.

<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="false" privileged="true" />

This should be sufficient to prevent Tomcat from removing your JABAWS from WEBAPPS. For more information about the Tomcat deployer read this documentation on the Apache-Tomcat web site.