You could use
JFreeReport, an open source
Java library for doing reports.
Also, I'm no expert with Crystal Reports, but I found with some quick Googling that there's shouldn't be anything preventing you from using it on Linux or with
Tomcat... on the website for
Crystal Reports Java edition it specifically says it works with WebLogic 8.1.
WebLogic 8.1 runs on several operating systems, including Linux (specifically mentions RHEL and SuSE). There's also
this PDF on Borland's website (since a version of Crystal Reports is shipped with JBuilder) that tells how to embed reports into a web application, and they are using Tomcat, and
this discussion over at experts-exchange.com discussing using Crystal Reports in Tomcat.