Deployment runthrough » History » Version 4

« Previous - Version 4/16 (diff) - Next » - Current version
Chris Cannam, 2014-02-24 10:58 AM


Deployment runthrough

This is an example deployment, on a 64-bit Linux host. There are various different ways to do this and the details will vary from one platform to another.

1. Obtain the current code from Mercurial repository

$ hg clone https://code.soundsoftware.ac.uk/hg/human-echolocation-java-webapp
http authorization required for https://code.soundsoftware.ac.uk/hg/human-echolocation-java-webapp
realm: Mercurial repository for Human Echolocation WebApp
user: chrisca
password: 
destination directory: human-echolocation-java-webapp
requesting all changes
adding changesets
adding manifests
adding file changes
added 41 changesets with 93 changes to 40 files
updating to branch default
23 files updated, 0 files merged, 0 files removed, 0 files unresolved
$

2. Install the MATLAB Compiler Runtime

Navigate to http://www.mathworks.co.uk/products/compiler/mcr/ and find the download URL, then use as follows.

$ mkdir mcr
$ cd mcr
$ wget 'http://www.mathworks.co.uk/supportfiles/downloads/R2013b/deployment_files/R2013b/installers/glnxa64/MCR_R2013b_glnxa64_installer.zip'
--2014-02-24 10:00:10--  http://www.mathworks.co.uk/supportfiles/downloads/R2013b/deployment_files/R2013b/installers/glnxa64/MCR_R2013b_glnxa64_installer.zip
Resolving www.mathworks.co.uk (www.mathworks.co.uk)... 23.214.117.160
Connecting to www.mathworks.co.uk (www.mathworks.co.uk)|23.214.117.160|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 488473010 (466M) [application/zip]
Saving to: ‘MCR_R2013b_glnxa64_installer.zip’

100%[======================================>] 488,473,010 7.81MB/s   in 60s    

2014-02-24 10:01:11 (7.71 MB/s) - ‘MCR_R2013b_glnxa64_installer.zip’ saved [488473010/488473010]
$ unzip MCR_R2013b_glnxa64_installer.zip 
Archive:  MCR_R2013b_glnxa64_installer.zip
  inflating: archives/mpc_resources_common_1348598029.enc  
  inflating: archives/cgir_mi_core_glnxa64_1375749553.xml  
[etc]
$ ./install

The installer window then pops up (X server connection required for graphical interaction here).

The default installation folder is /usr/local/MATLAB/MATLAB_Compiler_Runtime. I'm going to accept that.

The installer runs, and then prints out the following:

On the target computer, append the following to your LD_LIBRARY_PATH environment variable:

/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/runtime/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/bin/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/sys/os/glnxa64:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/sys/java/jre/glnxa64/jre/lib/amd64/native_threads:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/sys/java/jre/glnxa64/jre/lib/amd64/server:/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/sys/java/jre/glnxa64/jre/lib/amd64

Next, set the XAPPLRESDIR environment variable to the following value:

/usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/X11/app-defaults  

3. Bring dependent JAR files into the webapp folder

Make sure we're back in the webapp folder (the one we cloned from Mercurial earlier)

$ cd ../human-echolocation-java-webapp

Copy in the Servlet API library from our application server (in this case Tomcat):

$ cp /usr/share/java/tomcat7/servlet-api.jar .

And the MATLAB MCR JavaBuilder library:

$ cp /usr/local/MATLAB/MATLAB_Compiler_Runtime/v82/toolbox/javabuilder/jar/javabuilder.jar ./WebContent/WEB-INF/lib/

4. Build the WAR file bundle

Simple enough:

$ ant
Buildfile: /work/human-echolocation-java-webapp/build.xml

build:
    [javac] Compiling 2 source files to /work/human-echolocation-java-webapp/WebContent/WEB-INF/classes

build-war:
      [war] Building war: /work/human-echolocation-java-webapp/echoapp.war

BUILD SUCCESSFUL
Total time: 1 second
$