Introduction
BIRT is one of the best projects I have found in the past few years. In a nutshell, it’s a reporting framework that allows you to easily create visual reports (that include graphs, charts, and tables) from any Java-compatible data source (JDBC, for example).
BIRT reports are created and viewed with Eclipse. The only downside to this is that everyone who wants to view a BIRT report needs the actual report on their PC plus Eclipse installed. To get around this, BIRT has a Viewer that is able to be run from any Java EE container such as Tomcat or JBoss.
This article will cover JBoss.
JBoss
For this article, I used CentOS 5.5, Java 1.6, and JBoss 6.
Installing Java
Java is a prerequisite to JBoss. I downloaded the Java 1.6 JDK from its homepage. The exact file name was jdk-6u24-linux-i586-rpm.bin
.
When the download finishes, run the file as a shell script:
# sh jdk-6u24-linux-i586-rpm.bin
This installs the various Java components as RPM packages.
Installing JBoss
The JBoss download page can be found here. I downloaded version 6.0 Final. The exact file name was jboss-as-distribution-6.0.0.Final.zip
which contained the JBoss binaries as opposed to downloading the source and compiling it.
Once the download is finished, installation is as easy as unzipping the file and moving it to wherever you want JBoss to be installed:
# sh jdk-6u24-linux-i586-rpm.bin
# unzip jboss-as-distribution-6.0.0.Final.zip
# mv jboss-as-distribution-6.0.0.Final /usr/local/jboss
Configuring JBoss
There isn’t much configuration needed for JBoss. The most important thing is to make sure the environment of the user that will run JBoss has some proper variables set. For this test installation I am just using the root
user, so in /root/.bashrc
, I have the following set:
# sh jdk-6u24-linux-i586-rpm.bin
export JAVA_HOME=/usr/java/jdk1.6.0_24/
export PATH=$PATH:$JAVA_HOME/bin
export JBOSS_HOME=/usr/local/jboss
export PATH=$PATH:$JBOSS_HOME/bin
Running JBoss
To start JBoss, just run the run.sh
script. By default, JBoss will only listen on the localhost
interface, so use the -b
switch to change this:
# sh jdk-6u24-linux-i586-rpm.bin
# cd /usr/local/jboss
# ./bin/run.sh -b 192.168.255.2
Once JBoss is running, you can go to http://192.168.255.2:8080
to view the running server. There’s a link to the Administration Console from this page. The authentication information for this console can be found in /usr/local/jboss/server/default/conf/props/jmx-console-users.properties
.
The BIRT Viewer
Installing the BIRT Viewer
The BIRT Viewer can be downloaded from here as the Runtime package. Once it has downloaded, unzip the package and then copy the WebViewerExample
directory to /usr/local/jboss/server/default/deploy
as birt.war
:
# sh jdk-6u24-linux-i586-rpm.bin
# unzip birt-runtime-2_6_2.zip
# cd birt-runtime-2_6_2.zip
# cp -a WebViewerExample /usr/local/jboss/server/default/deploy/birt.war
Then restart JBoss.
Once JBoss has been restarted, you can verify that the BIRT Viewer works by going to http://192.168.255.2:8080/birt
.
Deploying Reports
Once the BIRT Viewer is working, you can now copy reports to the server anywhere under the /usr/local/jboss/server/default/deploy/birt.war
directory and view them online through the URL http://192.168.255.2:8080/birt/frameset?__report=whatever.rptdesign
. I usually put all reports under the existing /usr/local/jboss/server/default/deploy/birt.war/report
directory and then access the report through http://192.168.255.2:8080/birt/frameset?__report=report/whatever.rptdesign
.
Enabling JDBC Access
If the data of your reports is located in a database, you will need to install the appropriate JDBC driver for BIRT. I’ll use MySQL for this example.
You can get the MySQL JDBC driver from here.
Once the download is finished, copy the mysql-connector-java-3.1.14-bin.jar
file to BIRT:
# sh jdk-6u24-linux-i586-rpm.bin
# tar xzvf mysql-connector-java-3.1.14.tar.gz
# cd mysql-connector-java-3.1.14
# cp mysql-connector-java-3.1.14-bin.jar /usr/local/jboss/server/default/deploy/birt.war/WEB-INF/platform/plugin/org.eclipse.birt.report.data.oda.jdbc_2.6.2.r262_v20110127/drivers/
Note, depending on the version of BIRT being used, the actual destination directory could be different. I use the following method to find the right destination:
# sh jdk-6u24-linux-i586-rpm.bin
# find /usr/local/jboss/server/default/deploy/birt.war -iname \*jdbc\*
Conclusion
BIRT is a great package that can be used to create professional reports from almost any type of data source. Having these reports available on a central server for everyone to view is a very handy asset – especially for management departments. This article covered how to configure such a central server using JBoss and CentOS.