Skip to Content
0
Former Member
Dec 12, 2011 at 07:14 AM

Populating Prompts using java SDK in Release 4

75 Views

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