Eclipse Business Intelligence and Report Tools (BIRT) Project
Introduction
BIRT is an Eclipse-based open source reporting platform for web applications, especially those based on Java and J2EE. BIRT has two main components: a report designer based on Eclipse, and a runtime component that you can deploy to your application server. BIRT also has a charting engine that lets you include charts in your BIRT reports or add standalone charting capabilities to Java applications.
Report Designer
Application development with BIRT starts with the report designer. This Eclipse-based interface offers an HTML page-oriented design metaphor (similar to Adobe Dreamweaver and other HTML editors) to build reports that are intuitive to create and integrate easily into web applications. Key components include:
- Data Explorer – Manages your data sources (connections) and data sets (queries).
- Layout View – WYSIWYG editor that provides drag and drop creation of the presentation portion of your report.
- Report Item Palette – A palette with a rich set of visual elements such as containers (tables, grids, lists), labels and others.
- Expression Builder – Provides an interface to create calculated fields, format existing ones or perform other data-oriented calculations.
- Style Builder – Creates and manages CSS-like styles for consistent formatting.
- Property Editor – Presents the most commonly used properties in a convenient format that makes editing quick and easy.
- Report Preview – Allows you to test your report at any time with real data.
- Code Editor – Edits custom business logic to be executed during data access, report generation, or viewing.
- Chart Wizard – Defines and formats charts and their accompanying legends and axes.
- Outline – Provides a compact overview of your entire report structure.
- Cheat Sheets – Offer step-by-step instruction on commonly performed tasks to shorten the learning curve.
BIRT provides two flavors of designer: a plug-in for the Eclipse IDE, or a Rich Client Platform (RCP) version that offers a simplified interface without the additional perspectives in the standard Eclipse platform.
Report Design File
The report design file, as expressed by the BIRT Report Object Model (ROM), is the key design “artifact” associated with a report. It contains the elements that make up a report, including visual design components such as a table or an image and other non-visual items such as report parameters, formatting styles and data sources.
The designer allows the user to define these elements, the design file stores the elements in an XML format adhering to the ROM, and the report engine interprets the elements to produce a report document as output.
Report Engine and the BIRT Viewer
The BIRT report engine API allows you to integrate the run-time part of BIRT into your application as a set of POJOs (Plain Old Java Objects). The engine enables you to discover the parameters defined for a report and get their default values, incorporate included images or charts, retrieve needed data and transform it as necessary and, finally, render the report in HTML or PDF. Report execution also encompasses execution of any custom business logic associated with the report that is written in JavaScript or Java.
Included with the BIRT distribution is a sample BIRT viewer. It is used within the report designer for the preview operation, but can also be used as a simple user interface in your Java application to prompt for report parameters prior to report execution via the report engine API.
Chart Engine
The chart engine provides a rich business chart generation capability to be used standalone or invoked from the report engine. The chart engine supports creation of pie, bar, line, scatter and stock charts, all of which can be rendered in the following graphic formats: 8-bit images, 24-bit images, SWT graphics (GC), SWING graphics (Graphics2D) and SVG.
Design Engine API
The BIRT Design Engine API (DEAPI) enables the programmatic creation or modification of report designs and also provides for interrogation of report elements and semantic checking.
Extensibility
BIRT is more than a reporting tool; it is an extensible reporting framework. As such, it provides a number of extension points to support application-specific and general-purpose modifications. These include:
- The Open Data Access (ODA) framework, which enables the addition of new data sources to BIRT. It provides for both a runtime driver and a design time user interface.
- Custom scripting to incorporate complex and/or application specific business logic into report designs.
- APIs that permit the introduction of new visual components into reports and new attributes for existing components.
- Pluggable architecture for incorporating custom charts and new graphic formats into the charting engine.
Internationalization
BIRT is Unicode enabled, and supports creation of reports in any locale, with the exception of Right-to-Left languages.
39 comments:
I understand the advantege of such a tool in eclipse.
But from a broader ecosystem perspective, how does it position itself in front of excel:
+more versatile output format (web, etc)
-less interactivity on the report, no possibility to scratch out calculus
What's your view on this?
Buck,
Here is a note from the BIRT news groups from Paul Clenahan, that sums up WRD development.
++++++++++++++
The WRD component of the BIRT project is a "future" piece. Right now, we
are focusing our efforts on the core reporting technology that you see
as part of the BIRT Report Designer, Report Engine and associated
integration and extension points.
It is worth noting that BIRT provides the support that would allow you
to create a web based report designer today. Since the BIRT Report
Design format is XML, you can build a web application that creates an
XML Report Design, and then runs that design using the Report Engine. In
other words, you do not use the BIRT Report Designer to design the
report, you use your custom web application. I have seen interest in
this since it allows you to create a design environment in the context
of your application (using the business terms that the rest of your
application uses, for example). Within this approach there are two
variants -- creating an XML report design from scratch, or manipulating
an existing XML report design.
Hope this helps.
Regards,
Paul Clenahan
BIRT PMC
Nicolas,
Great question. I really dont see BIRT as a competing technology to Excel, although both have a small union of features. In some cases they actually complement each other. BIRT is currently addressed at more the embedded market and the developer coding reports with languages like JSP, PHP, Java, etc.
It is somewhat difficult to do a plus minus feature break down on a tool like BIRT. You use, as a minus "no possibility to scratch out calculus", which on the surface would appear true, but due to the nature of the way the product has been engineered this is quite possible. We have no Calculus control, but we have hooks to develop one, or hooks to call a Java library with that functionallity.
Jason
I am using grouping in table.
Inside one column i am using a chart.
I need that chart should use that groped data which my table is using.
how can i do that.
i am Trying to genrate a reports
using Servlets and Jdbc when i write a Inner quries it is not Accepting can any one plz send me how to execute the Multiple Quries at a time in Birt
Hi
i want to save the report in Excel file
can u help on this
give some example code using api
What version of BIRT are you using?
Jason
I have recently found great post about how to incorporate business...It really will be useful for your business if you read that!
Hi,
I am using BIRT 2.3.1 for creating reports in my web application.I downloaded the deployement package also,I dont how to deploy war file to my application.Please tell me how i can deploy reports to my application,and can we access the report from a link
Thanks and Regards
Sudheesh
sorry how to deploy reports(not war file)
You can put the reports in the war file or somewhere on your system. When you use the __report url parameter you can specify relative to the context or to a hard location eg c:/myreports/testreport.rptdesign.
Hi Jason Weathersby,
Very thanks for your reply.When i did like this,it is showing the XML page.And also i want to create dynamic reports using BIRT,and also i want to put some logic also.How it is possible
Hoping Your reply
Sudheesh
What servlet mapping are you using in the URL? Take a look at this page:
http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php
Jason
Hi Jason Weathersby,
Thanks for your kind help,I want to know how to deploy/run the reports using birt reportEngine (birt-runtime-2_3_1).After going through the http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php
I didnt get exactly how to do it ,Pls help me
Sudi
sudhi,
If you want to use the report engine api take a look at this page:
http://www.eclipse.org/birt/phoenix/deploy/reportEngineAPI.php
Hi All,
I have created one simple Birt report example in Eclipse.I can able to run that report through Eclipse-->File-->View Report. It is working fine.I want know how to run that report by giving a link,because mine is a web application.
Pls let me know how to do that.
Thanks
Download the Report Engine download and extract it. Use the WebViewerExample J2EE app. It is described here:
http://www.eclipse.org/birt/phoenix/deploy/viewerUsage2.2.php
Hi Jason,
Very much thanks for your kind help.
Now i want to create reports .While running the reports i got error regarding the jdbc connectivity.I am giving the error i got.
org.eclipse.birt.report.engine.api.EngineException: An exception occurred during processing. Please see the following message for details: Cannot open the connection for the driver: org.eclipse.birt.report.data.oda.jdbc. Cannot load JDBC Driver class: org.gjt.mm.mysql.Driver.
Take a look at the viewer install page. It has a section on JDBC drivers.
http://www.eclipse.org/birt/phoenix/deploy/viewerSetup.php#install_jdbc
Hi Jason,
Thanks again for your help.I can able to connect to database now.I have a requirement to do One report.It is the attendance data for One month.For One all employees.Date 1-end of month i need to capture data from db table,Date should be dynamic depends on the month,
And also after displaying status of all the employees i need to add each stauts per employee ,Means How many leaves he taken,How many Week offs etc.
I dont know where to do these calculations in Birt.I expecting your help.
Thanks
Sudheesh
Take a look at this example report
http://www.birt-exchange.com/devshare/designing-birt-reports/687-set-a-date-parameter-value-to-last-day-of-the-month/#description
Hi Jason,
Suppose we want to do some operations according to the db query out put ,eg.add all the leaves,add all present etc,And also the display table should be dynamic,ie leaves are coming from masters tables,I need to find out each leave how much,so the heading should come 1-31 of the month and all leave types,total working days etc.
Expecting your help.
Sudheesh
HI,
I want to create a report using BIRT. In the report parameter i will select month and year.After selecting this fields,i want to pass employee id and date (1 to end of month)
for getting the result.Here for each employee i want to pass 1- end of month dates.
And also in output also i want to display like
EMPLOYEE_ID 1 2 3 .................31
456 ------->X X x...................X
Pls tell me how to achieve that
Sudheesh
Sudheesh,
What exactly are you having an issue with?
Jason
Hi Jason,
I want to create a little complicated report.Here i have to generate Attendance report for One month,
Single query will not help here,First to get all employees .
Second i have to pass date 1-01-2009 to 30-01-2009 and employee id to get result for each date for single employee.Like this i want to pass all employees.
Why not use two tables. One nested in the other. The outer queries the dates for students. The inner query gets info for the date and student. The inner query could be parameterized and get its parameter values from the outer table.
Hi,
I am creating report using scripted datasource.I dont know how to create dyanmic table in the BIRT report.If You have any example pls help
Thanks
Sudhi
Hi,
While creating birt report ,i got error
org.eclipse.birt.report.service.api.ReportServiceException :Invalid TOC query.
Pls hepme to resove this issue
Thanks
Sudhi
Sudhi,
On your first question take a look at this post:
http://www.birt-exchange.com/devshare/designing-birt-reports/317-birt-build-dynamic-table-deapi-/
This shows how to build a table with the DE API. You can also call the DE API from the beforeFactory event to modify the currently running report.
On you second question:
This sounds like the expression you have entered for the TOC (most likely in a group header) is not formatted correctly. Can you email me the report?
Jason
Hi,
Thanks for your reply till date,
my new issue is while creating reporyt i want to pass one parameter to open method ,While passing i got this exception.Pls help me how to solve it
Multiple exceptions occurred.
Show Exception Stack Trace Hide Exception Stack Trace
Stack Trace:
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "favoritesclass = new Packages.com.SimpleClass(); var fmne = reportContext.getParameterValue("NewParameter1"); favorites = favoritesclass.getMusterRoll(fmne); totalrows = favorites.size(); currentrow = 0;": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:77) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:79) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:244) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:220) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:904) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:161) at org.eclipse.birt.report.engine.data.dte.QueryResultSet.(QueryResultSet.java:92) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:128) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:79) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:231) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1164) at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:155) at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81) at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:121) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:106) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage.
Sudhi,
Is you Java class use a package name of
package com
If you have no package name on it just use code like
favoriteClass = new Packages.SimpleClass()
Jason
Hi,
Problem is not because of parameters,With out passing parameters also it is show ing the same exception.I Think calling java method may be the problem,One Static arrayList i returned from java class to birt. In that case it is working fine .But if i put some queries inside java it is showing the problem.
Waiting for your reply
Sudhi
Hi
I was working on the birt report that using scripted datasource.
From the open method i am calling One java class method.From the java class method i am creating One connection code below
Class.forName("org.gjt.mm.mysql.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname","dbuser","password");
While doing like this i am getting the exception while running the report.
Is it possible to create like this ? or is there any way to proceed
Waiting for Your reply
Sudhi
Sudhi,
You can try putting the jdbc driver for MySQL in the web apps/web-inf/lib folder or put it in the appservers lib folder. This may cause an issue with reports that direct connect to the database, because it expects the driver to be in the jdbc plugin/drivers directory. If this is an issue you can set the jdbc driver path in script on the beforeOpen event for the datasource with code similar to:
reportContext.getAppContext().put("OdaJDBCDriverClassPath", "C:/apps/apache-tomcat-5.5.20/webapps/WV/WEB-INF/lib");
Hi,
Using connection parametrs in .rptdesign file it is working fine.Only problem is the Connection created in the java class for eecuting the query.
Sudhi
Hi,
database connection problem is solved in the birt design phase.Problem was auhorization with db.
Now a new problem started.
While running in the Tomcat server i got the exception.It is given below.
Birt viewer is installed properly.
Sample reports are working properly.I think problem is only with the connection.In the birt report viewer
WebViewerExample/WEB-INF/lib i added all the connection jar files.Still it is showing the probem.
org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "favoritesclass = new Packages.com.SimpleClass(); var fm_id=params["NewParameter1"]; favorites = favoritesclass.getMusterRoll(fm_id); totalrows = favorites.size(); currentrow = 0;": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:77) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:79) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:244) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:220) at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:904) at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:233) at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:161) at org.eclipse.birt.report.engine.data.dte.QueryResultSet(QueryResultSet.java:92) at org.eclipse.birt.report.engine.data.dte.DteDataEngine.doExecuteQuery(DteDataEngine.java:128) at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:79) at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:248) at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1736) at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:77) at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:62) at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45) at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42) at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63) at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:90) at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:101) at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:231) at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:237) at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:90) at org.eclipse.birt.report.service.ReportEngineService.runReport(ReportEngineService.java:1164) at org.eclipse.birt.report.service.BirtViewerReportService.runReport(BirtViewerReportService.java:155) at org.eclipse.birt.report.service.actionhandler.BirtRunReportActionHandler.__execute(BirtRunReportActionHandler.java:81) at org.eclipse.birt.report.service.actionhandler.BirtGetPageActionHandler.__checkDocumentExists(BirtGetPageActionHandler.java:58) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.prepareParameters(AbstractGetPageActionHandler.java:121) at org.eclipse.birt.report.service.actionhandler.AbstractGetPageActionHandler.__execute(AbstractGetPageActionHandler.java:106) at org.eclipse.birt.report.service.actionhandler.AbstractBaseActionHandler.execute(AbstractBaseActionHandler.java:90) at org.eclipse.birt.report.soapengine.processor.AbstractBaseDocumentProcessor.__executeAction(AbstractBaseDocumentProcessor.java:47) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.executeAction(AbstractBaseComponentProcessor.java:143) at org.eclipse.birt.report.soapengine.processor.BirtDocumentProcessor.handleGetPage(BirtDocumentProcessor.java:87) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.eclipse.birt.report.soapengine.processor.AbstractBaseComponentProcessor.process(AbstractBaseComponentProcessor.java:112) at org.eclipse.birt.report.soapengine.endpoint.BirtSoapBindingImpl.getUpdatedObjects(BirtSoapBindingImpl.java:66) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397) at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:225) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:112) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.eclipse.birt.report.filter.ViewerFilter.doFilter(ViewerFilter.java:68) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:595) Caused by: org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2).. See next exception for more information. There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2). 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) at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:71) ... 75 more Caused by: org.eclipse.birt.core.exception.CoreException: There are errors evaluating script "__bm_OPEN()": TypeError: [JavaPackage com.SimpleClass] is not a function, it is org.mozilla.javascript.NativeJavaPackage. (#2). at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:300) at org.eclipse.birt.core.script.ScriptContext.eval(ScriptContext.java:261) at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:713) ... 77 more org.eclipse.birt.report.engine.api.EngineException: There are errors evaluating script "if(currentrow >=totalrows) { return (false); } var favrow = favorites.get(currentrow); var EMPLOYEE_ID = favrow[0]; var EMPLOYEE_NAME = favrow[1]; var FM_NAME = favrow[2]; row["EMPLOYEE_ID"] = EMPLOYEE_ID; row["EMPLOYEE_NAME"] = EMPLOYEE_NAME; row["FM_NAME"] = FM_NAME; currentrow = currentrow +1; return (true);": {1}. at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:77) at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:196) at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleFetch(ScriptDataSetScriptExecutor.java:119) at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.fetch(ScriptDataSetRuntime.java:102) at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.fetch(PreparedScriptDSQuery.java:257) at org.eclipse.birt.data.engine.executor.cache.OdiAdapter.fetch(OdiAdapter.java:153) at org.eclipse.birt.data.engine.executor.cache.RowResultSet.next(RowResultSet.java:102) at org.eclipse.birt.data.engine.executor.cache.ExpandableRowResultSet.next(ExpandableRowResultSet.java:64) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.populateData(SmartCacheHelper.java:301) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.initInstance(SmartCacheHelper.java:273) at org.eclipse.birt.data.engine.executor.cache.SmartCacheHelper.getResultSetCache(SmartCacheHelper.java:235) at org.eclipse.birt.data.engine.executor.cache.SmartCache.(SmartCache.java:74) at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.populateOdiResultSet(PassUtil.java:111) at org.eclipse.birt.data.engine.executor.transform.pass.PassUtil.pass(PassUtil.java:62) at o
Hi,
I dont Know where to keep the class file while deploying in to the server
Thnks
Sudhi
Sunhi,
Can you send me the report design and the simpleclass java file in email? jasonweathersby at alltel.net
Jason
Hi
In the report parametr i am selecting One value and this value is getting in the open method. From the open method i am calling one method by passing the parameter From Simple.java file and getting a ArryList>from the fetch method i am displaying the Contents.
In the java class i am creating the connection.
In the design preview it is working fine.Problem is afetr deploying in tomcat it is showing exception
Where is the problem.
And i really want to know whether ia m proceedign in the right way.
Thanks
Sudheesh
Post a Comment