ubuntu tomcat8 packaging breaks MetaboAnalyst application

Bug #1707208 reported by Jack Howarth
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tomcat8 (Ubuntu)

Bug Description

The Ubuntu tomcat8 server fails to properly serve the MetaboAnalyst server application when installed as described upstream at http://www.metaboanalyst.ca/faces/docs/Resources.xhtml. A manual installation of a glassfish4 4.1.2 server has no problems serving the same MetaboAnalyst.war.

The problem can be easily reproduced on current Ubuntu 16.04 Xenial x86_64 workstation using the following steps...

1) Install the required R 3.4.1 release and associated cran packages required for the current Bioconductor R packages by executing...

sudo add-apt-repository ppa:marutter/c2d4u
sudo add-apt-repository ppa:marutter/rrutter
sudo apt-get update
sudo apt-get install r-cran-bh r-cran-bitops r-cran-boot r-cran-cairo r-cran-car r-cran-caret r-cran-catools r-cran-class r-cran-cluster r-cran-codetools r-cran-colorspace r-cran-curl r-cran-devtools r-cran-dichromat r-cran-digest r-cran-e1071 r-cran-ellipse r-cran-foreach r-cran-foreign r-cran-gdata r-cran-gdtools r-cran-ggplot2 r-cran-git2r r-cran-gplots r-cran-gtable r-cran-gtools r-cran-httr r-cran-igraph r-cran-irlba r-cran-iterators r-cran-jsonlite r-cran-kernsmooth r-cran-labeling r-cran-lattice r-cran-lazyeval r-cran-lme4 r-cran-magrittr r-cran-mass r-cran-matrix r-cran-matrixmodels r-cran-memoise r-cran-mgcv r-cran-mime r-cran-minqa r-cran-modelmetrics r-cran-multicore r-cran-munsell r-cran-nlme r-cran-nloptr r-cran-nnet r-cran-openssl r-cran-pbkrtest r-cran-pheatmap r-cran-pkgconfig r-cran-pls r-cran-plyr r-cran-proc r-cran-quantreg r-cran-r6 r-cran-randomforest r-cran-rcolorbrewer r-cran-rcpp r-cran-rcppeigen r-cran-reshape2 r-cran-rjsonio r-cran-rlang r-cran-rocr r-cran-rpart r-cran-rserve r-cran-rstudioapi r-cran-scales r-cran-scatterplot3d r-cran-som r-cran-sparsem r-cran-spatial r-cran-stringi r-cran-stringr r-cran-survival r-cran-svglite r-cran-tibble r-cran-whisker r-cran-withr r-cran-xtable

2) Since upstream Bioconductor constantly updates and often has temporary build issues, download the pre-built x86_64 binaries for placement in /usr/local/lib/R from https://www.dropbox.com/s/x7o8596k3nnzq99/R_bioc_local_lib.tar.bz2?dl=0 and then extract the obtained bioc_local_lib.tar.bz2 using the commands...

cd /usr/local/lib
sudo mv R R.sav
sudo tar -jxvf <path_to>/R_bioc_local_lib.tar.bz2

3) Execute...

sudo apt-get install libnetcdf-dev build-essential libboost-dev libxml2-dev

...to make sure all of the shared lib dependencies for these Bioconductor shared modules are satisfied.

4) Now install the current tomcat8 packages with...

sudo apt-get install tomcat8 tomcat8-admin tomcat8-user libtomcat8-java tomcat8-docs tomcat8-examples

5) Obtain the MetaboAnalyst.war from https://dl.dropboxusercontent.com/u/95163184/MetaboAnalyst.war and manually deploy it with the commands...

sudo cp <path_to_war>/MetaboAnalyst.war /var/lib/tomcat8/webapps

Note that MetaboAnlystwar is larger than the max size allowed in the tomcat8 admin web interface so that limit has to increased if the deployment is done from the web interface.

6) Now start the Rserve required for the MetaboAnalyst server by executing...

sudo -u tomcat8 R

and at the R prompts execute...


7) Now attempt to connect to the MetaboAnalyst server at the URL...


The expected results are seen by connecting to the official MetaboAnalyst site using the URL...


while the Ubuntu tomcat8 fails with the error message...

HTTP Status 404 -
type Status report
description The requested resource is not available.
Apache Tomcat/8.0.32 (Ubuntu)

appearing in the browser for the connection to http://localhost:8080/MetaboAnalyst/

This issue is seen with both the openjdk and oracle jdk8 packages installed under Ubuntu. Also, tomcat8 is known to work fine on other platforms. For example, the fink packaging system on MacOS uses the same installation and setup for the MetaboAnalyst server against the Oracle JDK8 without issue.

Lastly, a manual installation of glassfish4 under Ubuntu can be used to confirm that the MetaboAnalyst installation described above is functional with the following steps...

1) Stop the tomcat8 server with the command...

sudo service tomcat8 stop

2) Exit the previous R session with 'q()' and kill any launched Rserve daemons with...

sudo killall -9 Rserve

3) Download glassfish4 4.1.2.zip from http://download.java.net/glassfish/4.1.2/release/glassfish-4.1.2.zip and install it in a user account with...

unzip glassfish-4.1.2.zip

4) start the glassfish4 serve with the command...

glassfish4/bin/asadmin start-domain

5) Deploy the using the glassfish admin interface accessed at

6) Start the Rserve as the current user by executing 'R' and then exexute the following commands at the R prompt...


7) Now connect to the local MetaboAnalyst server running under glassfish4 at the URL...


which should produce identical results as that of the official server at http://www.metaboanalyst.ca/

Revision history for this message
Jack Howarth (jwhowarth) wrote :

The logs from a bzip2 tar archive of the /var/lib/tomcat8/logs directory contents after the tomcat8 and MetaboAnalyst installation to run as tomcat8. The logs show the messages logged from tomcat8 when the failed connection attempt at the URL...


...produces the error messages...

HTTP Status 404 -
type Status report
description The requested resource is not available.
Apache Tomcat/8.0.32 (Ubuntu)

...in the browser.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Bug attachments