Install 52°North WPS from Source on Debian
Prerequisites
Installation
1) Check out latest stable code version
sudo mkdir /var/code/
sudo chmod 777 /var/code/
cd /var/code/
git clone https://github.com/52North/WPS.git
You can also check out your own fork of the
WPS or a specific branch.
2) Build WPS locally
cd WPS
mvn clean install
If you see the "Build Success" message you can proceed, otherwise please resolve the building errors first.
3) Create deployment script
nano /var/code/wps-build-deploy.sh
Copy and paste the following script file and...
- replace the Tomcat user name and password,
- set the tomcat manager endpoint, and
- optionally:
- adjust the location of the Tomcat control script, and
- adjust the WPS version.
DIR="/var/code/WPS"
UPDATE=false
DEPLOY=false
RESTART=false
BUILD=true
TOMCAT="/etc/init.d/tomcat7"
TOMCAT_USER="user"
TOMCAT_PASS="pass"
MANAGER="http://myTomcat.server:8080/manager/text"
# used for renaming of war file
VERSION="3.3.0-SNAPSHOT"
WEBAPP_NAME="wps"
help() {
echo >&2 "Usage $0 [-dnur] [-p directory] [-w name]"
echo >&2 " -p directory path to the build directory [default: /var/code/WPS]"
echo >&2 " -d deploy the webapp to the local tomcat [default: false]"
echo >&2 " -n do NOT build the webapp (successful build required for deploy) [default: false]"
echo >&2 " -u update the working copy [default: false]"
echo >&2 " -r restart tomcat after deploying (implies -d) [default: false]"
echo >&2 " -w name use \"name\" as the webapp name [default: wps]"
exit 1
}
while getopts b:w:uhrd o 2>/dev/null; do
case ${o} in
p)
DIR=${OPTARG}
;;
d)
DEPLOY=true
;;
n)
BUILD=false
;;
u)
UPDATE=true
;;
w)
WEBAPP_NAME=${OPTARG}
;;
r)
RESTART=true
DEPLOY=true
;;
*)
help
;;
esac
done
cd $DIR
# update
if $UPDATE; then
echo "[SCRIPT] UPDATING REPO ..."
git pull
fi
# undeploy
if $DEPLOY; then
echo "[SCRIPT] UNDEPLOYING ..."
curl -vu "$TOMCAT_USER:$TOMCAT_PASS" "$MANAGER/undeploy?path=/$WEBAPP_NAME"
fi
# build
if $BUILD; then
# build w/o geotools
echo "[SCRIPT] BUILDING PROJECT ..."
mvn clean install -DskipTests=true
# build with geotools
#mvn clean install -DskipTests=true -Pwith-geotools
# rename war file
mv -v "52n-wps-webapp/target/52n-wps-webapp-$VERSION.war" "52n-wps-webapp/target/$WEBAPP_NAME.war"
fi
#deploy
if $DEPLOY; then
echo "[SCRIPT] DEPLOYING ..."
curl -vu "$TOMCAT_USER:$TOMCAT_PASS" "$MANAGER/deploy?path=/$WEBAPP_NAME&war=`pwd`/52n-wps-webapp/target/$WEBAPP_NAME.war"
# restart tomcat
if $RESTART; then
$TOMCAT restart
fi
fi
cd -
exit 0
If you want to use some processing backends such as R or conversion functionality then you might have to include the GeoTools modules. Comment out the line after the comment
# build with geotools
and add a
#
(commenting the line out) the line after
# build w/o geotools
.
4) Copy the config file to home directory
We copy the config file to the home directory of the Tomcat user to preserve it through installation updates and easily switch configurations.
Other ways of configuration are documented at
WpsConfiguration.
sudo cp 52n-wps-webapp/src/main/webapp/config/wps_config.xml /home/tomcat7/wps_config.xml
If you require GeoTools functionalities, use the complete config file:
sudo cp /var/code/WPS/52n-wps-webapp/src/main/webapp/config/wps_config_geotools.xml /home/tomcat7/wps_config.xml
5) Run deployment script
sh wps-build-deploy.sh -u -d
This automatically updates and deploys the WPS (including undeploying an existing webapp with the same name). You can also configure the update and deploy as default behaviour in the script file and also restart the Tomcat server if necessary.
6) Change administrator password
Open the user configuration file:
sudo nano <your Tomcat installation directory>/webapps/<your webapp name>/WEB-INF/classes/users.xml
Then change the password for the user
wps
and remove the user with name
guest
.
Restart the Tomcat server for the changes to take effect.
You must manually define the server host name and port that is used for generating responses by the service.
sudo nano /home/tomcat7/wps_config.xml
Scroll to the
<Server ...
element and adjust the attributes
hostname
and
port
to match your configuration. If you changed the webapp name in the deployment script, then also adjust it here.
Alternatively, you can also chance the
Property
element with the name
responseURLFilterEnabled
so that the response URL is based dynamically on the request URL.
Reload the webapp in the Tomcat Manager for the changes to take effect.
8) Further configuration