Eclipse BIRT is free / open source reporting engine for Java.
A commercial BIRT Report Server is available from Actuate (the company behind Eclipse BIRT). While Eclipse BIRT does not provide a free/open source reporting server, the BIRT Runtime provides a simple Eclipse BIRT Web Viewer.
Eclipse BIRT Web Viewer installation instructions for several Java EE application servers are here.
Here I share my own experience installing Eclipse BIRT 2.6.1 Web Viewer under GlassFish 3.0.1 Java EE Application Server :
- Install package
sun-java6-jdk
dan ttf-mscorefonts-installer
Package ttf-mscorefonts-installer contains Microsoft fonts needed by some reports.
- Install GlassFish 3.0.1+.
When asked for JVM, enter: /usr/lib/jvm/java-6-sun
Run GlassFish. In Terminal, go to GlassFish directory and type:
bin/asadmin start-domain
Default GlassFish domain is :
domain1It will show something like:
tuneeca@geulis:~/glassfishv3$ bin/asadmin start-domain
Waiting for DAS to start ......
Started domain: domain1
Domain location: /home/tuneeca/glassfishv3/glassfish/domains/domain1
Log file: /home/tuneeca/glassfishv3/glassfish/domains/domain1/logs/server.log
Admin port for the domain: 4848
Command start-domain executed successfully.
Now that GlassFish is running, you need to deploy Eclipse BIRT Web Viewer:
- Download birt-runtime-*.zip from BIRT Downloads under BIRT Runtime.
Inside this archive there is birt.war file.
- Deploy
birt.war
through GlassFish admin ( http://localhost:4848/ ) or by copying birt.war
to folder glassfish/domains/
domain1/autodeploy/
In the log file glassfish/domains/domain1/server.log
(to follow this file, use tail -f
) you should see something like :
[#|2010-11-22T16:55:54.411+0700|INFO|glassfish3.0.1|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=23;_ThreadName=Thread-1;|[AutoDeploy] Selecting file /home/tuneeca/glassfishv3/glassfish/domains/domain1/autodeploy/birt.war for autodeployment.|#]
- Check BIRT Web Viewer is running at : http://localhost:8080/birt/
You will need two additional libraries,
Apache Commons Logging and
JDBC Driver for your database.
Commons Logging
Without this, you'll get an error: java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
birt.war needs Apache Commons Logging.
Copy the file commons-logging-1.1.1.jar to folder glassfish/domains/domain1/applications/birt/WEB-INF/lib
Then reload the webapp :
touch glassfish/domains/domain1/applications/birt/
.reload
MySQL JDBC DriverIf you get an exception like:
An exception occurred during processing. Please see the following message for details:
Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc.dbprofile.
org.eclipse.datatools.connectivity.oda.OdaException ;
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
For MySQL:
Copy file
mysql-connector-java-5.1.13.jar to
glassfish/domains/domain1/applications/birt/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_[version]/drivers
For other databases, copy the appropriate JDBC driver(s).
Go to: http://localhost:8080/birt/
Now you should be able to run BIRT reports over the web, on GlassFish!