Deploying rdap-server with the reference SQL Provider
The server is a typical servlet Java WAR; so, simply put it into a servlet container. The following is an improvised example on how this might be done in Ubuntu/Tomcat; if any other means or environments are flavored, knock yourself out. (Payara and Wildfly have been tested as well as Tomcat).
General recommendation: if RedDog’s server will be at a production environment, configure a load balancer or a reverse proxy to protect the server.
When configuring the balancer/proxy, the context must be the same as the server. E.g. if the backend server is at
example.com:8080/rdap
, then the frontend service should be atexample.com/rdap
(note that the server context is/rdap
).
Install Java
sudo apt-get install openjdk-8-jre
Install Tomcat
# Ubuntu repositories aren't used because their Tomcat is rather old.
# You will probably need to adapt this link because it keeps changing.
# See www-us.apache.org/dist/tomcat/tomcat-8
wget www-us.apache.org/dist/tomcat/tomcat-8/v8.5.49/bin/apache-tomcat-8.5.49.tar.gz
tar -xzvf apache-tomcat-8.5.49.tar.gz
CATALINA_HOME=$(pwd)/apache-tomcat-8.5.49
JRE_HOME=/usr/lib/jvm/java-8-oracle/jre
Install the MySQL driver on Tomcat
cd $CATALINA_HOME/lib
# https://dev.mysql.com/downloads/connector/j/
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.44.zip
unzip -j mysql-connector-java-5.1.44.zip mysql-connector-java-5.1.44/mysql-connector-java-5.1.44-bin.jar
Install RedDog on Tomcat
mkdir $CATALINA_HOME/webapps/rdap
cd $CATALINA_HOME/webapps/rdap
# www.reddog.mx/server-download.html
wget https://github.com/NICMx/rdap-server/releases/download/v1.5.0/rdap-server-1.5.0.war
jar -xvf rdap-server-1.5.0.war
rm rdap-server-1.5.0.war
Add the SQL Provider to the classpath
The latest SQL Provider can be found here.
mv ~/Downloads/rdap-sql-provider-1.5.0.jar WEB-INF/lib
If classpath only contains one implementation, that’s all there is needed. Otherwise the provider’s hub class must be specified in the data-access.properties
file:
echo "data-access-implementation = mx.nic.rdap.sql.impl.SqlProviderImplementation" > WEB-INF/data-access.properties
This file is rdap-server’s data access configuration file and contains some predefined properties that are useful for the reference implementation; more details on this configuration can be seen here.
Create the data source that will link RedDog and the database
One way to do this in Tomcat is to define the datasource in context.xml
.
The file $CATALINA_HOME/webapps/rdap/META-INF/context.xml
must be created, then the following content must be inserted and the dummy values (in square brackets) replaced:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/rdap">
<Resource name="jdbc/rdap"
type="javax.sql.DataSource"
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
url="[URL]"
username="[username]"
password="[password]"
validationQuery="select 1" />
</Context>
Start Tomcat
$CATALINA_HOME/bin/startup.sh
RedDog server is now running and serving data provided by the SQL Provider’s queries.