Showing results for 
Search instead for 
Did you mean: 

Looking for a latest web reporting library for Crystal Reports viewing

0 Kudos

We have a web application, we package .rpt report files inside our resources and we let the users choose and view Crystal Reports using some Crystal Webreporting JAR (v These reports were designed using JNDI datasource connection. When viewing through runtime, it connects through the datasource defined in our application server JNDI.
In this web application, besides the Crystal Webreporting JAR, we also package two more JAR files: Crystal Reports Runtime Components (v, and Crystal Common (v These names and versions are as per the MANIFEST.MF file inside the JAR file. 

Main reason for upgrading is that these JARs contain classes are using log4j1. To identify we can search for org/apache/log4j/Logger in these class files. 

Would like to see if I can upgrade these libraries to a higher version that uses safer versions of log4j2. It does not matter even if we get a version that does not use log4j at all for logging due to the recent security vulnerabilities. 

Also if you have any other means to integrate with a J2EE web application, besides using the web reporting library, please suggest. As of the code we have now, it calls reports viewer from JSP and Java Servlet files. Typically in such a JSP file, we use the following classes or imports.


<%@page import="com.crystaldecisions.reports.sdk.*" %>
<%@page import="*" %>
<%@page import="*" %>
<%@page import="*" %>
<%@page import="*"%>
<%@page import="*" %>
<%@page import=""%>
<%@page import=""%> 

<%@ page 
  import= " com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory,


And following is a sample of the rendering code


ReportClientDocument reportClientDoc = (ReportClientDocument) session.getAttribute("abcCrystalReportClientDocument");

	if (reportClientDoc == null) {
	    System.out.println (" Report Client Doc is null again");
	else {

		IReportSource reportSource = (IReportSource) reportClientDoc.getReportSource();

		//create the CrystalReportViewer object
		CrystalReportViewer oCrystalReportViewer = new CrystalReportViewer();

		//set the reportsource property of the viewer

		//set viewer attributes
		//set the CrystalReportViewer print mode
		 //Set the parameter fields for the viewer by passing in the initialized Fields object. 
		Fields fields = procMapROC( reportsBean.getParamap(),reportBean.getParamReportMap(),reportBean.getBaseFile());	
	    oCrystalReportViewer.setEnableParameterPrompt(false); // turn off the prompt
	   	//System.out.println("viewMe: setDisplayGroupTree" );
		oCrystalReportViewer.processHttpRequest(request, response, getServletConfig().getServletContext(),  null);



I got a recent Crystal Reports for Eclipse. There I found Crystal Common JSR (v12.2.231.5147), and Crystal Reports Runtime Components (v These appear to be using org/apache/logging/log4j/Logger, which is of log4j2 (hopefully is compatible with safer version of log4j2).
I could not find any newer JAR or any way to find for example: com\crystaldecisions\report\web\viewer\CrystalReportViewer.class in the later Crystal Reports For Eclipse.

Any ideas to upgrade to a later web reporting component.
Or any other ideas like changing our code to use or integrate with the latest (external) Crystal Reports Viewer. 
My team would not accept too much work either, as this is a product that is on its end of life road and low maintenance mode.

I appreciate any help, as this is critical to our situation now. 


Accepted Solutions (0)

Answers (1)

Answers (1)

Active Contributor
0 Kudos


CR for Eclipse post are here:

You can get the latest CR for Eclipse from here:,check back for updates also:

And this link for the latest supported platforms: