[jboss-user] [JBoss Tools Users] - birt - Seam component always null with birt embed

gonzalad do-not-reply at jboss.com
Tue Sep 22 12:12:50 EDT 2009


Hello,

I'm using a Seam component in birt report (from a scripted datasource).
When I try to access a Seam Component from a birt report and when I use embed mode(designType="embed"), Seam component is always null.
When I use designType="run", everything works fine.

I don't understand why.
It appears to me to have a relation with UIDocument's logic when we call JBossBirtServlet with an URLConnection :
URL birtURL = new URL(urlString);
  | URLConnection connection = birtURL.openConnection();
  | InputStream stream = connection.getInputStream();
  | 
When I change this code from UIDocument code to use requestDispatcher.include, it works fine.

Should I open a JIRA issue (with test case) ?

Thanks for your help !

My jsf page output :
The following items have errors:
  | 
  | ReportDesign (id = 1):
  | + There are errors evaluating script "importPackage(Packages.org.jboss.seam);
  | importPackage(Packages.org.apache.log4j);
  | sampleReportList = Component.getInstance("sampleReportList", false);
  | logger = Logger.getLogger("com.natixis.birt");
  | logger.warn("sampleReportList = "+sampleReportList);
  | reportsIterator = sampleReportList.getNames().iterator();
  | ":
  | {1}.
  | 
  | Error.ScriptEvaluationError ( 1 time(s) )detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "importPackage(Packages.org.jboss.seam);importPackage(Packages.org.apache.log4j);
  | sampleReportList = Component.getInstance("sampleReportList", false);
  | logger = Logger.getLogger("com.natixis.birt");
  | logger.warn("sampleReportList = "+sampleReportList);
  | reportsIterator = sampleReportList.getNames().iterator();":{1}.
  | at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77)	
  | ...
  | Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()":TypeError: Cannot call method "getNames" of null (<inline>#7). See next exception for more information.There are errors evaluating script "__bm_OPEN()":TypeError: Cannot call method "getNames" of null (<inline>#7)	at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118)
  | TypeError: Cannot call method "getNames" of null (<inline>#7)	at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3557)	
  | ...
  | + There are errors evaluating script "if( !( reportsIterator.hasNext()) ){
  |  return( false );
  | }
  | var report = reportsIterator.next();
  | row["Name"] = report;
  | return ( true );":
  | {1}.
  | 
  | Error.ScriptEvaluationError ( 1 time(s) )detail : org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "if( !( reportsIterator.hasNext()) ){	return( false );}var report = reportsIterator.next();row["Name"] = report;return ( true );":{1}.	at ...
  | org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(Dtorg.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_FETCH()":ReferenceError: "reportsIterator" n'est pas défini (<inline>#2). See next exception for more information.There are errors evaluating script "__bm_FETCH()":ReferenceError: "reportsIterator" n'est pas defini (<inline>#2)	at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118)	at 
  | ...
  | + data.engine.BadFetchScriptReturnType
  | 

My sysout :
17:10:52,979 WARN  [birt] sampleReportList = null
  | 17:10:53,042 ERROR [STDERR] 22 sept. 2009 17:10:53 org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor handleJS
  | ATTENTION: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()":
  | TypeError: Cannot call method "getNames" of null (<inline>#7). See next exception for more information.
  | There are errors evaluating script "__bm_OPEN()":
  | TypeError: Cannot call method "getNames" of null (<inline>#7)
  | org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()":
  | TypeError: Cannot call method "getNames" of null (<inline>#7). See next exception for more information.
  | There are errors evaluating script "__bm_OPEN()":
  | TypeError: Cannot call method "getNames" of null (<inline>#7)
  | 	at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118)
  | 	at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:717)
  | 	at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:76)
  | 	

And the open method from my scripted datasource  :

  | importPackage(Packages.org.jboss.seam);
  | importPackage(Packages.org.apache.log4j);
  | sampleReportList = Component.getInstance("sampleReportList", false);
  | logger = Logger.getLogger("com.natixis.birt");
  | logger.warn("sampleReportList = "+sampleReportList);
  | reportsIterator = sampleReportList.getNames().iterator();
  | 
  | 

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4256453#4256453

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4256453




More information about the jboss-user mailing list