Toms Online Notebook Sharing my stuff.

Installing Apache Roller in Jetty 9

by tgutwin

Posted on Sunday Jan 24, 2016 at 05:15PM in Technology

jettyIcon.pngsteamroller5.jpgI have been using Google for my Web Based notebook Blog
for a few years, however, it did not have all the features I wanted to
use; like commenting and a tag cloud. SO, I installed my own weblog
software - Apache Roller.
I also looked at WordPress, but I wanted a Java only solution. You are
looking at it right now. This is how I got it running on Jetty.

I am going to point out how easy it was to install in a simple Java Servlet engine like Jetty,
without a full Application Server. The Roller instal docs say that all
it needs is a servlet engine, but then it goes on to only have examples
for installing in full J2EE Application Servers (JBOSS, Tomcat,

I use Jetty 9 on its own, without a full App server, and it was very easy to get going. My production DB is MariaDB (mySql) on Fedora 23.

I followed the very good docs available from the Roller Website --> Installation Guide

You can either build from source or get the latest stable build.

Build from source:

Fedora Dependant Packages

You'll need Maven. Here are the Fedora Packages I installed:

$ sudo yum install maven maven-release-plugin keytool-maven-plugin xmlbeans-maven-plugin maven-war-plugin maven-test-tools maven-shared-jar maven-settings maven-scm maven-release maven-rar-plugin maven-plugin-tools-java maven-plugin-tools-beanshell maven-plugin-tools-ant maven-plugin-testing-tools maven-plugin-registry maven-osgi maven-local maven-jarsigner-plugin maven-jar-plugin maven-invoker-plugin maven-gpg-plugin maven-ear-plugin maven-ant-plugin maven-dependency-plugin maven-downloader maven-common-artifact-filters maven-artifact-manager maven-artifact maven-archiver rome

Download, Build And Install Apache Roller

Download & build

    • mkdir roller

    • cd roller

    • svn co trunk

    • cd trunk

    • mvn clean install

Download the latest build

Or you can just download the latest build - which might be a better idea because using the trunk will NOT allow for easy upgrades.

Setup The DB

Create Database schema and user(s) - this is pretty much straight out of the Roller Installation Guide

  • I already had a MariaDB instance setup and running So I am using it...

  • mysql -u yourMySqlUserId -p

  • password: *****

    • mysql> CREATE USER 'scott'@'localhost' IDENTIFIED BY 'tiger';

    • mysql> create database rollerdb DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

    • mysql> grant all on rollerdb.* to scott@'%' identified by 'tiger';

    • mysql> grant all on rollerdb.* to scott@localhost identified by 'tiger';

    • mysql> flush privileges;

    • mysql> exit;

Jetty specific Setup

So far, this has all been standard; as per the Roller Installation Guide

Setup the Roller Properties file to point to your roller data dir and the DB username you previously setup.

  1. Copy it somewhere in the classpath - I put mine into the WEB-INF/classes dir


    • installation.type=auto
      # Weblog entry plugins\
      #org.apache.roller.ui.rendering.plugins.ConvertLineBreaksPlugin \
      #,org.apache.roller.ui.rendering.plugins.TopicTagPlugin \
      #,org.apache.roller.ui.rendering.plugins.ObfuscateEmailPlugin \
      #,org.apache.roller.ui.rendering.plugins.SmileysPlugin \

  3. add some extra support jars to the WEB-INF/lib dir

  4. Comment out the JNDI references in the web.xml and sun-web.xml

  5. I put everything into a script file called (attached)

    • #!/bin/bash
      # Make sure your have the generic war file backed up first

      if [ -d $WEBAPP_HOME/roller ];
        rm -R -f $WEBAPP_HOME/roller
      unzip -q $WEBAPP_HOME/roller-$ROLLER_VERSION.war -d $WEBAPP_HOME/roller
      rm $WEBAPP_HOME/roller.war
      cp /opt/jdbc/mariadb-java-client-1.1.8.jar $WEBAPP_HOME/roller/WEB-INF/lib
      cp /opt/jdbc/derbyclient.jar $WEBAPP_HOME/roller/WEB-INF/lib
      cp $ROLLER_HOME/../ $WEBAPP_HOME/roller/WEB-INF/classes
      cp --remove-destination $ROLLER_HOME/../web.xml $WEBAPP_HOME/roller/WEB-INF
      cp --remove-destination $ROLLER_HOME/../sun-web.xml $WEBAPP_HOME/roller/WEB-INF
      unzip -oq /opt/roller-themes/ -d $WEBAPP_HOME/roller/themes/.
      cd $WEBAPP_HOME/roller
      zip -qr $WEBAPP_HOME/roller.war *
      cd $WEBAPP_HOME

  6. Copy Webapp war/files to Jetty baseDir/webapp

  7. Connect to the roller URL you setup 

Configure the Running Roller Instance

  1. Run through startup wizard to fill DB and create an Roller Admin user

  2. Grab the extra Themes from ...

  3. Configure settings in the roller web-app,

  4.  and get going.

My detailed configuration notes:

I installed TinyMCE weblog editor following these instructions almost exactly:

You have to use the TinyMCE distrivution version 3; I tried v4 and it does not work because the paths in the download are different than the editor-tinymce.jsp file that is created using the instructions above. You could use v4 but you would need to change the paths in the editor-tinymce.jsp file. Here is the v3 Download link:


No one has commented yet.
Comments are closed for this entry.