Forums/Product Manuals/Raspberry Pi

Running a Web Application on Raspberry Pi

posted this on July 2, 2012, 1:48 PM

Installing a Web Application Server

To run Elastic COBOL programs as web applications, we first need to install a Web Application Server. For this example we are going to use Apache Tomcat 7 which can be downloaded and installed for free.

$ cd $HOME
$ wget
$ tar xzf apache-tomcat-7.0.42.tar.gz
$ mv apache-tomcat-7.0.42.tar.gz tomcat7

Before we start Tomcat, we need to add a user that has permissions to deploy applications:

$ cd $HOME/tomcat7/conf
$ vi tomcat-users.xml

Immediately after <tomcat-users> add the following line and save the file:

<user username="system" password="raspberry" roles="manager-gui"/>

Now let's start Tomcat:

$ cd $HOME/tomcat7/bin
$ sh

Using CATALINA_BASE: /home/pi/tomcat7
Using CATALINA_HOME: /home/pi/tomcat7
Using CATALINA_TMPDIR: /home/pi/tomcat7/temp
Using JRE_HOME: /usr/lib/jvm/jdk-8-oracle-arm-vfp-hflt
Using CLASSPATH: /home/pi/tomcat7/bin/bootstrap.jar:/home/pi/tomcat7/bin/tomcat-juli.jar

You should now be able to access Tomcat's management console by entering the following into your browser:


User Name: System
Password: raspberry


Compiling & Packaging the Application for Tomcat

$ cd $HOME/ec4rpi/samples/servlet-register/resources
$ ecc register
Elastic COBOL V14.11.8 Copyright (C) 2010-2014 Heirloom Computing

LOC: 440 (42 variables in 3 records)
Warnings: 0
Errors: 0
Result: Compilation SUCCESSFUL
Building: Class files

You can find out details and specifics on what needs to be done to successfully deploy a web application to Tomcat here. The following instructions are abridged specifically for this application:

$ mkdir WEB-INF WEB-INF/classes

This is part of the required deployment structure.
$ cp reg*class WEB-INF/classes

This is the application code produced by Elastic COBOL.
$ unzip -q $HOME/ec4rpi/ecobol.jar -d WEB-INF/classes

This is the Elastic COBOL runtime.
$ cp $HOME/ WEB-INF/classes

This is the Elastic COBOL license file.

Use the web.xml file (the application's deployment descriptor) that is attached to this article to create a copy on your Raspberry Pi.

$ cp /tmp/web.xml WEB-INF
$ jar cf register.war register.html register.cbl WEB-INF

This creates a WAR (Web application ARchive) application package that can be deployed to Tomcat.


Deploying & Executing the Application Package

$ cp register.war $HOME/tomcat7/webapps

This will "hot deploy" the application to Tomcat.

Installation of the application will take a minute or so. You will know that the application has been successfully deployed when the Tomcat management console lists the application as "Running" (true).


You should now be able to access the deployed application by entering the following in your browser:


This will display the web form that is going to invoke the Elastic COBOL register servlet.

You can fill out the form (required fields are in bold), or you can simply scroll down to the bottom of the form and click "Register Software". This will cause the COBOL servlet to process the empty form and report back:


You can click on "register.cbl" at the top of the page to view the application source in the browser.



If you want to shutdown your Tomcat server, do the following:

$ cd $HOME/tomcat7/bin
$ sh