on 2024 Jan 13 11:43 AM - last edited on 2024 Feb 01 12:42 PM by DonWilliams
Trying to display report inside java application using JSP.
Able to show report successfully but once started scrolling it refreshes and become blank page.
Export also not working.
Below is the error in the exception log.
2024-01-13 19:17:37
com.businessobjects.report.web.shared.WebReportingException: The viewer could not process an event. The report source could not be retrieved from the state object. [CRWEB00000134] ---- Error code:0 [CRWEB00000119]
at com.businessobjects.report.web.shared.WebReportingException.throwWebReportingException(WebReportingException.java:71)
at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1577)
at com.businessobjects.report.web.WorkflowController.doEventProcessing(WorkflowController.java:401)
at com.businessobjects.report.web.WorkflowController.doLifecycle(WorkflowController.java:289)
at com.businessobjects.report.web.WorkflowController.doAsyncLifecycle(WorkflowController.java:122)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerUpdater._processHttpRequest(CrystalReportViewerUpdater.java:61)
at com.crystaldecisions.report.web.ServerControl.processHttpRequest(ServerControl.java:345)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doUpdate(CrystalReportViewerServlet.java:210)
at com.crystaldecisions.report.web.viewer.CrystalReportViewerServlet.doPost(CrystalReportViewerServlet.java:198)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.openejb.server.httpd.EEFilter.doFilter(EEFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.cv.servlet.CVServletWebCacheLoader.doFilter(CVServletWebCacheLoader.java:94)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.matrixone.apps.domain.util.XSSInputFilter.doFilter(XSSInputFilter.java:317)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.dspassport.cas.client.validation.BubbleKeepAliveFilter.doFilter(BubbleKeepAliveFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.dspassport.cas.client.authentication.DynamicServiceUrlAuthenticationFilter.doFilter(DynamicServiceUrlAuthenticationFilter.java:245)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.dspassport.cas.client.validation.DynamicServiceUrlAbstractTicketValidationFilter.doFilter(DynamicServiceUrlAbstractTicketValidationFilter.java:416)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.dspassport.cas.client.validation.CASProxyTicketValidationFilter.doFilter(CASProxyTicketValidationFilter.java:169)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.plmsecurity.ticket.servlet.LoginTicketAuthenticationFilter.doFilter(LoginTicketAuthenticationFilter.java:78)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.dassault_systemes.dspassport.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at com.matrixone.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:173)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(OpenEJBSecurityListener.java:97)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:889)
Caused by: com.businessobjects.report.web.shared.MissingReportSourceException: The report source could not be retrieved from the state object.---- Error code:0 [CRWEB00000134]
at com.businessobjects.report.web.event.ViewerBroadcaster.broadCastEvent(ViewerBroadcaster.java:125)
at com.businessobjects.report.web.event.ViewerBroadcaster.broadcast(ViewerBroadcaster.java:110)
at com.businessobjects.report.web.event.EventQueue.processEvents(EventQueue.java:53)
at com.businessobjects.report.web.component.ViewerContainer.processEvents(ViewerContainer.java:1559)
... 66 more
JSP
<%@ page import="com.crystaldecisions.sdk.framework.*" %>
<%@ page import="com.crystaldecisions.sdk.exception.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.security.*" %>
<%@ page import="com.crystaldecisions.report.web.viewer.*" %>
<%@ page import="com.crystaldecisions.sdk.plugin.desktop.report.*" %>
<%@ page import="com.crystaldecisions.sdk.plugin.desktop.common.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.managedreports.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.data.*" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.text.ParsePosition" %>
<%@ page import="java.util.*" %>
<%@ include file="logon.jsp" %>
<%
try
{
//Get the requested report ID and the Crystal Enterprise Session
String siName = request.getParameter("SI_NAME");
String refreshData = request.getParameter("RefreshData");
refreshData = refreshData == null ? "false" : request.getParameter("RefreshData");
IInfoStore iStore;
IInfoObjects oInfoObjects;
IInfoObject oInfoObject = null;;
Fields f = new Fields();
if ( refreshData.equals("true") || session.getAttribute("crview") == null ) {
SimpleDateFormat dateFormatter= new SimpleDateFormat("(yyyy,M,d)");
SimpleDateFormat dateTimeFormatter= new SimpleDateFormat("(yyyy,M,d,h,m,s)");
// Get the report using the SI_ID
iStore = (IInfoStore) es.getService("", "InfoStore");
oInfoObjects = iStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME = '" + siName + "'");
oInfoObject = (IInfoObject)oInfoObjects.get(0);
IReport theReport = (IReport)oInfoObject;
// If the report has parameters, there should be form data for their values
if (theReport.getReportParameters().size() > 0) {
for (int i = 0; i < theReport.getReportParameters().size(); i++) {
IReportParameter param = (IReportParameter)theReport.getReportParameters().get(i);
// Create a new ParameterField object, copy the values
// from the parameters read out of the IReport object
ParameterField pf = param.getParameterField();
switch (param.getValueType()) {
case 0:
pf.setType(FieldValueType.numberField);
break;
case 1:
pf.setType(FieldValueType.currencyField);
break;
case 2:
pf.setType(FieldValueType.booleanField);
break;
case 3:
pf.setType(FieldValueType.dateField);
break;
case 4:
pf.setType(FieldValueType.timeField);
break;
case 5:
pf.setType(FieldValueType.dateTimeField);
break;
case 6:
pf.setType(FieldValueType.stringField);
break;
default:
}
Values pvls = new Values();
if (param.isRangeValueSupported()) {
ParameterFieldRangeValue pfrv = new ParameterFieldRangeValue();
String from = request.getParameter("frm" + i);
String to = request.getParameter("to" + i);
switch (param.getValueType()) {
case 0: //Number Value Type
case 1: //Currency Value Type
// differentiate between longs and doubles
if (from.indexOf(".")<0)
pfrv.setBeginValue(new Long(from));
else
pfrv.setBeginValue(new Double(from));
if (to.indexOf(".")<0)
pfrv.setEndValue(new Long(to));
else
pfrv.setEndValue(new Double(to));
break;
case 3:
// expected format for date: (YYYY,MM,DD)
Date dateValue= dateFormatter.parse(from.substring(from.indexOf('(') ), new ParsePosition(0));
pfrv.setBeginValue(dateValue);
Date dateValue1= dateFormatter.parse(to.substring(to.indexOf('(') ), new ParsePosition(0));
pfrv.setEndValue(dateValue1);
break;
case 4:
// expected format for time: (YYYY,MM,DD,HH,MM,SS)
Date timeValue= dateTimeFormatter.parse(from.substring(from.indexOf('(') ), new ParsePosition(0));
pfrv.setBeginValue(timeValue);
Date timeValue1= dateTimeFormatter.parse(to.substring(to.indexOf('(') ), new ParsePosition(0));
pfrv.setEndValue(timeValue1);
case 5:
// expected format for datetime: (YYYY,MM,DD,HH,MM,SS)
Date dateTimeValue= dateTimeFormatter.parse(from.substring(from.indexOf('(') ), new ParsePosition(0));
pfrv.setBeginValue(dateTimeValue);
Date dateTimeValue1= dateTimeFormatter.parse(to.substring(to.indexOf('(') ), new ParsePosition(0));
pfrv.setEndValue(dateTimeValue1);
break;
default:
pfrv.setBeginValue(from);
pfrv.setEndValue(to);
}
// set the upper and lower bounds to be inclusive
pfrv.setLowerBoundType(RangeValueBoundType.inclusive);
pfrv.setUpperBoundType(RangeValueBoundType.inclusive);
pvls.add(pfrv);
} else {
ParameterFieldDiscreteValue pfdv = new ParameterFieldDiscreteValue();
String val = request.getParameter("vl" + i);
switch (param.getValueType()) {
case 0: //Number Value Type
case 1: //Currency Value Type
if (val.indexOf(".")<0)
pfdv.setValue(new Long(val));
else
pfdv.setValue(new Double(val));
break;
case 3: //Date Value Type
Date dateValue= dateFormatter.parse(val.substring(val.indexOf('(') ), new ParsePosition(0));
pfdv.setValue(dateValue);
break;
case 4: //Time Value Type
Date timeValue= dateTimeFormatter.parse(val.substring(val.indexOf('(') ), new ParsePosition(0));
pfdv.setValue( timeValue );
case 5: //DateTime Value Type
Date dateTimeValue= dateTimeFormatter.parse(val.substring(val.indexOf('(') ), new ParsePosition(0));
pfdv.setValue(dateTimeValue);
break;
default: //String Value Type
pfdv.setValue(val);
}
pvls.add(pfdv);
}
// use the Values to set the current values
pf.setCurrentValues(pvls);
// add the field to the Fields collection
f.add(pf);
}
}
//Get a Page Server Report factory and use it to create a ReportSource object
IReportSourceFactory factoryPS = (IReportSourceFactory) es.getService("PSReportFactory");
IReportSource reportSource = factoryPS.openReportSource((oInfoObject),Locale.ENGLISH);
//Create a Report Viewer and set its properties before calling processHttpRequest
CrystalReportViewer viewer = new CrystalReportViewer();
viewer.setReportSource(reportSource);
viewer.setEnterpriseLogon(es);
viewer.setDisplayPage(true);
viewer.setDisplayToolbar(true);
viewer.setOwnPage(true);
viewer.setPrintMode(CrPrintMode.ACTIVEX);
viewer.setName("CrystalReportViewer");
viewer.setParameterFields(f);
session.setAttribute("crview", viewer );
}
((CrystalReportViewer)session.getAttribute("crview")).processHttpRequest(request, response, getServletConfig().getServletContext(), null);
}
catch (Exception e) {
System.out.println("ReportSDKException: "+e);
}
%>
SAP BusinessObjects BI Platform 4.3 Support Pack 4 Patch 1
Version: 14.3.4.4808
Please help
Request clarification before answering.
User | Count |
---|---|
66 | |
9 | |
7 | |
6 | |
6 | |
6 | |
5 | |
4 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.