Hi,
We are planning to migrate to BO Release 4 in production.But while testing some existing Java SDK based applications we found a few problems.
We are getting the following error when we try to populate the prompts for a Webi Document.
java.lang.ClassNotFoundException: com.crystaldecisions.celib.trace.TraceManager at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) at com.businessobjects.sdk.ceutils.prompts.PromptsUtil.<clinit>(PromptsUtil.java:48) at com.amadeus.mis.reportingportal.AdhocReportingmanager.createSchedule(AdhocReportingmanager.java:535) at org.apache.jsp.AdhocReporting_jsp._jspService(AdhocReporting_jsp.java:417) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677) at org.apache.jsp.Login_jsp._jspService(Login_jsp.java:174) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302) at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:706) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:677) at org.apache.jsp.index_jsp._jspService(index_jsp.java:54) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Unknown Source)
the following is the code snippet is being used to populate the prompts.
boInfoStore = (IInfoStore) boEnterpriseSession.getService("", "InfoStore");
// Retrieve specified report
boInfoObjects = boInfoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_ID="+instanceId);
//Grab the first object in the collection, this will be the object that will be scheduled.
IInfoObject infoobj=(IInfoObject)boInfoObjects.get(0);
IWebi webiDoc = (IWebi)boInfoObjects.get(0);
ReportEngine reportEngine = (ReportEngine)boEnterpriseSession.getService("", "WebiReportEngine");
reportEngine.setLocale(boEnterpriseSession.getEffectivePreferredViewingLocale().getLanguage());
DocumentInstance di = reportEngine.openDocument(webiDoc.getID());
Prompts promptList = di.getPrompts();
//Set schedule format.
for(int i=0;i<promptList.getCount();i++)
{
Prompt prompt=promptList.getItem(i);
if(!(prompt.getObjectType().equals(prompt.getObjectType().DATE)))
{
List<String>valList=convertToList(updatedList.get(i));
String[] stringArray = Arrays.copyOf(valList.toArray(), valList.toArray().length, String[].class);
prompt.enterValues(stringArray);
}
else if(prompt.getObjectType().equals(prompt.getObjectType().DATE))
{
boEnterpriseSession.getLocale())).toLocalizedPattern());
List<String>valList=convertToList(updatedList.get(i));
for(int ix=0;ix<valList.size();ix++)
{
String temp=valList.get(ix);
valList.set(ix,convertToFormat(temp,prompt.getInputFormat(),boEnterpriseSession.getEffectivePreferredViewingLocale(),browserLocale));
}
String[] stringArray = Arrays.copyOf(valList.toArray(), valList.toArray().length, String[].class);
convertedDate=convertToFormat(updatedList.get(i),prompt.getInputFormat(),boEnterpriseSession.getEffectivePreferredViewingLocale(),browserLocale);
prompt.enterValues(stringArray);
}
}
PromptsUtil.populateWebiPrompts(promptList, webiDoc) ;
I am using all the jars from R4 and so don't think it is due to different versions of Jar.
Regards,
Abhishek Ranjan