I finally cleared the last Java Certification exam that I intend to write - the
Sun Certified Business Component Developer (SCBCD) for the Java Platform, Enterprise Edition 5 Certification Exam (CX-310-091).
It basically is a multiple choice exam
in Java Beans (EJB Edition 3.0) consisting of 61 questions, in which
you have to get at least 36 correct. The low pass score - 59% is reflective
of the difficulty level of this exam.
Here are the topics tested:
EJB 3.0 Overview
EJB 3.0 Enterprise Bean Knowledge
EJB 3.0 Session Bean Component Contract & Lifecycle
EJB 3.0 Message-Driven Bean Component Contract
Java Persistence API Entities
Java Persistence Entity Operations
Persistence Units and Persistence Contexts
Java Persistence Query Language
TransactionsExceptions
Security Management
Sunday, March 14, 2010
Wednesday, December 2, 2009
Cleared the SCWCD for the Java EE 5 !
I recently cleared the SCWCD (Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5 certification) exam, an exam for
Sun Certified Programmers who are using the Java technology servlet and JavaServer Pages (JSP) application program interface (APIs) to develop web applications.
I have published my success story in the Java Ranch Forums
with my story. I've also made in the SCWCD Wall Of Frame!
For Those who are interested in pursuing this, here is some extra info:
http://ca.sun.com/training/catalog/courses/CX-310-083.xml
One must have the Java programmer certification first
- Emphasis is on memorization
– Names of classes, methods, and packages
– Names of JSP variables and associated classes
– Servlet life cycle
– Custom JSP tag libraries
– web.xml elements
Sun Certified Programmers who are using the Java technology servlet and JavaServer Pages (JSP) application program interface (APIs) to develop web applications.
I have published my success story in the Java Ranch Forums
with my story. I've also made in the SCWCD Wall Of Frame!
For Those who are interested in pursuing this, here is some extra info:
http://ca.sun.com/training/catalog/courses/CX-310-083.xml
One must have the Java programmer certification first
- Emphasis is on memorization
– Names of classes, methods, and packages
– Names of JSP variables and associated classes
– Servlet life cycle
– Custom JSP tag libraries
– web.xml elements
Thursday, June 11, 2009
How to override Blank Page template with custom styles
By default, in the BIRT Designer (2.3.1), when selecting a new Blank Report,
you get a report with default(no-styles), and the date/time
at the footer.
If you'd like to modify this template, this can be done quite easily:
A simple way to do this is to modify blank_report.rpttemplate
It is located here:
BIRT_DESIGNER_INSTALL/plugins/org.eclipse.birt.resources_2.3.1..../templates/blank_report.rpttemplate
Now edit the file and add your template. The example below
overrides the crosstab colors/styles and adds a few more custom built styles.
you get a report with default(no-styles), and the date/time
at the footer.
If you'd like to modify this template, this can be done quite easily:
A simple way to do this is to modify blank_report.rpttemplate
It is located here:
BIRT_DESIGNER_INSTALL/plugins/org.eclipse.birt.resources_2.3.1..../templates/blank_report.rpttemplate
Now edit the file and add your template. The example below
overrides the crosstab colors/styles and adds a few more custom built styles.
in
WizardTemplateChoicePage.message.BlankReport
WizardTemplateChoicePage.title.BlankReport
/templates/blank_report.gif
Friday, January 9, 2009
Removing the 'Null' Text in ComboBox or ListBox Parameters
In BIRT 2.3.1, it is possible to modify or hide the 'Null' Text value that is generated
when you create a ComboBox or ListBox Parameter.
*Update to this Post* The syntax highlighter is not working properly.
The XML tag brackets have been replaced with { }
Go to the BIRT WebViewer JSP page in
\webcontent\birt\pages\parameter .
Find ComboBoxParameterFragment.jsp in the viewer and edit the JSP to remove the space and the Null Text Value (i.e. IBirtConstants.NULL_VALUE)
when you create a ComboBox or ListBox Parameter.
*Update to this Post* The syntax highlighter is not working properly.
The XML tag brackets have been replaced with { }
Go to the BIRT WebViewer JSP page in
\webcontent\birt\pages\parameter .
Find ComboBoxParameterFragment.jsp in the viewer and edit the JSP to remove the space and the Null Text Value (i.e. IBirtConstants.NULL_VALUE)
if ( !parameterBean.isRequired( ) )
{
if( allowMultiValue )
{
if( DataUtil.contain( values, null, true ) )
{
%>
{option title="">" SELECTED VALUE=""}{/option}
{option title="">" VALUE=""}{/option}
{option title="">" VALUE="" ??% : ?SELECTED? )? null paramValue="=" {/option}
Sunday, December 21, 2008
Extending the BIRT Google Spreadsheet ODA
I've extended the Dataset UI in the BIRT Google ODA that Scott Rosenbaum posted in BIRT World . The Google ODA utilizes the Google Spreadsheet API and I've extended the UI, by giving a graphical user interface in the custom Dataset page.
The Dataset page now initializes a "Google Spreadsheet Model" which contains the
a drop down of the list of available Spreadsheets in the model. Selecting a given
spreadsheet will list the selected Worksheets for that Spreadsheet, and in turn
display the Worksheet-based feed in the form of
http://spreadsheets.google.com/feeds/worksheets/key/visibility/projection
I've added a few helper classes to initialize the Spreadsheet in the Dataset UI.
You can actually test this out as I've included the modifieid source code,
and both the designer and ui jars.
Simply take the files:
1. org.eclipse.datatools.connectivity.oda.google.ui_1.0.0.jar
(Designer UI plugin)
2. org.eclipse.datatools.connectivity.oda.google_1.0.0.jar
(Runtime ODA Plugin)
and place it in the plugins directory of BIRT.
This has only been tested in BIRT 2.3.1, and I currently used JDK 6 to build these jars.
Thanks again toScott Rosenbaum for supplying the initial source code. This example actually helped
me develop my own custom ODA for work.
You can download the ODA Plugin here: google-spreadsheet-oda_1.0.0.zip
From OpenReports |
From OpenReports |
The Dataset page now initializes a "Google Spreadsheet Model" which contains the
a drop down of the list of available Spreadsheets in the model. Selecting a given
spreadsheet will list the selected Worksheets for that Spreadsheet, and in turn
display the Worksheet-based feed in the form of
http://spreadsheets.google.com/feeds/worksheets/key/visibility/projection
I've added a few helper classes to initialize the Spreadsheet in the Dataset UI.
You can actually test this out as I've included the modifieid source code,
and both the designer and ui jars.
Simply take the files:
1. org.eclipse.datatools.connectivity.oda.google.ui_1.0.0.jar
(Designer UI plugin)
2. org.eclipse.datatools.connectivity.oda.google_1.0.0.jar
(Runtime ODA Plugin)
and place it in the plugins directory of BIRT.
This has only been tested in BIRT 2.3.1, and I currently used JDK 6 to build these jars.
Thanks again toScott Rosenbaum for supplying the initial source code. This example actually helped
me develop my own custom ODA for work.
You can download the ODA Plugin here: google-spreadsheet-oda_1.0.0.zip
Friday, December 19, 2008
Integrating the Birt Viewer into OpenReports using Struts Part 2
In the last mini-tutorial, we've integrated the BIRT Ajax Viewer 2.3.1 servlet
into OpenReports 3.1, and updated the BIRT libraries from 2.3 to 2.3.1.
In this section, we wrap up the tutorial by basically modifying
the OpenReports UI such that when a BIRT Report is run, we'll get
a UI that allows the additional enhancements:
1. Execute the current BIRT rptdesign report using the BIRT Viewer in the Same Window
2. Execute the current BIRT rptdesign report using the BIRT Viewer in a new Window
Futhermore , we can specify if the BIRT Viewer will be using the Full Window,
or if it will be embeded showing us the Report Name and Path to the Design file.
3. Adding Postscript and Word Export options for BIRT Reports (OpenReports is missing this)
Here are some screenshots of the enhancement and a link to the modified source code here- openReportsWithBIRT2.3.1.zip
I've highlighted the Java files that I've modified using the original OpenReports source code. The perspective below is from Eclipse Ganymede 3.4 which I'm working with.
We modify struts.xml by adding a new Action called
birtRunReport and create an action class in org.efs.openreports.actions.BirtReportAction.java that extends ActionSupport.
(I've basically mimicked what I've seen with the existing OpenReport Actions
since I'm fairly new to Struts )
Here's the BirtReportAction.java class that I wrote that is used in BirtViewer.jsp where we use
the birt tag library (birt.tld) to run the Viewer.
The birt_isHostPage is an attribute used to indicate if the Viewer will use the whole page.
There are 2 JSP's that need to be added/modified that contribute to the UI.
The first is ReportOptions.jsp which is the result of the action associated
with clicking on a BIRT Report.
The second JSP we require to modify is BirtViewer.jsp . This is the page
that calls the BIRT Viewer. We use the BIRT Tag library to show the viewer. You can read about it here from BIRT Eclipse site under Using the BIRT Report Viewer
That's the core of the work. There are other a few other Java files
that need to be modified to get this example working - they only
involve very minor changes, so I'll just present some snit bit code Fragments.
In org.efs.openreports.actions.ReportOptionsAction.java,
we need to pass the attribute birt_isHostPage and execute
th Birt Viewer action.
The action is defined in org.efs.openreports.ORStatics.java
as
In org.efs.openreports.ReportConstants, we need
to define the new Export Types "DOC", "PPT", and "POSTSCRIPT".
Lastly, we need to add support to the Export types that OpenReports does not
support that the BirtEngine handles in org.efs.openreports.engine.BirtReportEngine.java
That's about it - bundle the package up , build it and deploy it to Tomcat.
into OpenReports 3.1, and updated the BIRT libraries from 2.3 to 2.3.1.
In this section, we wrap up the tutorial by basically modifying
the OpenReports UI such that when a BIRT Report is run, we'll get
a UI that allows the additional enhancements:
1. Execute the current BIRT rptdesign report using the BIRT Viewer in the Same Window
2. Execute the current BIRT rptdesign report using the BIRT Viewer in a new Window
Futhermore , we can specify if the BIRT Viewer will be using the Full Window,
or if it will be embeded showing us the Report Name and Path to the Design file.
3. Adding Postscript and Word Export options for BIRT Reports (OpenReports is missing this)
Here are some screenshots of the enhancement and a link to the modified source code here- openReportsWithBIRT2.3.1.zip
From OpenReports |
From OpenReports |
I've highlighted the Java files that I've modified using the original OpenReports source code. The perspective below is from Eclipse Ganymede 3.4 which I'm working with.
From OpenReports |
We modify struts.xml by adding a new Action called
birtRunReport and create an action class in org.efs.openreports.actions.BirtReportAction.java that extends ActionSupport.
(I've basically mimicked what I've seen with the existing OpenReport Actions
since I'm fairly new to Struts )
ReportOptions.jsp
reportRun
queryReport
chartReport
jxlsReport
jpivot.action
reportSchedule.action
listScheduledReports.action
birtRunReport
BirtViewer.jsp
Here's the BirtReportAction.java class that I wrote that is used in BirtViewer.jsp where we use
the birt tag library (birt.tld) to run the Viewer.
The birt_isHostPage is an attribute used to indicate if the Viewer will use the whole page.
package org.efs.openreports.actions;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;
import java.util.Map;
import org.apache.log4j.Logger;
import org.efs.openreports.ORStatics;
import org.efs.openreports.engine.BirtReportEngine;
import org.efs.openreports.engine.ReportEngine;
import org.efs.openreports.engine.ReportEngineHelper;
import org.efs.openreports.engine.input.ReportEngineInput;
import org.efs.openreports.objects.ORProperty;
import org.efs.openreports.objects.Report;
import org.efs.openreports.objects.ReportLog;
import org.efs.openreports.objects.ReportUser;
import org.efs.openreports.providers.DataSourceProvider;
import org.efs.openreports.providers.DirectoryProvider;
import org.efs.openreports.providers.PropertiesProvider;
import org.efs.openreports.providers.ReportLogProvider;
import org.efs.openreports.util.LocalStrings;
import org.efs.openreports.util.ORUtil;
public class BirtReportAction extends ActionSupport
{
private static final long serialVersionUID = 7473180642590984527L;
protected static Logger log = Logger.getLogger(BirtReportAction.class);
private Map<Object, Object> session;
private String birt_isHostPage; // see birt.tld
private DirectoryProvider directoryProvider;
private Report report;
private String designFile;
public String execute() throws Exception
{
report = (Report) ActionContext.getContext().getSession().get(ORStatics.REPORT);
designFile = directoryProvider.getReportDirectory() + report.getFile();
log.info("BirtReportAction chained - directoryProvider:" + directoryProvider.getReportDirectory());
log.info("BIRT Report Action , Report File:" + report.getFile() );
log.info("BIRT Report Action , Report Name:" + report.getName() );
log.info("BIRT Report Action ), DESIGN FILE:" + designFile );
log.info("BIRT Report Action , birt_isHostPage:" + birt_isHostPage);
return SUCCESS;
}
public String getDesignFile()
{
return designFile;
}
public Report getReport()
{
return report;
}
public void setBirt_isHostPage(String birt_isHostPage)
{
this.birt_isHostPage = birt_isHostPage;
}
public String getBirt_isHostPage()
{
return birt_isHostPage;
}
public void setDirectoryProvider(DirectoryProvider directoryProvider)
{
this.directoryProvider = directoryProvider;
}
@SuppressWarnings("unchecked")
public void setSession(Map session)
{
this.session = session;
}
}
There are 2 JSP's that need to be added/modified that contribute to the UI.
The first is ReportOptions.jsp which is the result of the action associated
with clicking on a BIRT Report.
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<?xml:namespace prefix = s /><s:include value="Banner.jsp"></s:include>
<s:actionerror></s:actionerror>
<script language="JavaScript" type="text/JavaScript">
function setDefaultExportType()
if (optionsForm.exportType.length)
{
optionsForm.exportType[0].checked=true
}
else
{
optionsForm.exportType.checked=true
}
}
function setBlankTarget()
{
optionsForm.target="_blank";
}
function setNoTarget()
{
optionsForm.target="";
}
function setBlankTargetBirt()
{
birtForm.target="_blank";
}
function setNoTargetBirt()
{
birtForm.target="";
}
</script>
<div align="center">
<a class="back-link img-report-small" href="http://www.blogger.com/reportList.action"><s:text name="link.back.reports"></s:text></a>
<a class="back-link img-group-small" href="http://www.blogger.com/reportGroup.action"><s:text name="link.back.groups"></s:text></a>
<div class="img-export important" id="instructions" style="WIDTH: 70%">
<s:text name="reportOptions.title"></s:text> <s:property value="report.name"></s:property>
</div>
<form class="dialog-form" style="WIDTH: 75%" name="optionsForm" action="reportOptions.action">
<table class="dialog">
<tbody><tr>
<td class="boldText"><s:text name="reportOptions.exportType"></s:text></td>
<s:if test="report.pdfExportEnabled">
<td>
<input type="radio" value="0" name="exportType">PDF
</td>
</s:if>
<s:if test="report.htmlExportEnabled">
<td>
<input type="radio" value="2" name="exportType">HTML
</td>
</s:if>
<s:if test="report.csvExportEnabled">
<td>
<input type="radio" value="3" name="exportType">CSV
</td>
</s:if>
<s:if test="report.xlsExportEnabled report.jXLSReport">
<td>
<input type="radio" value="1" name="exportType">XLS
</td>
</s:if>
<s:if test="report.rtfExportEnabled">
<td>
<input type="radio" value="5" name="exportType">RTF
</td>
</s:if>
<s:if test="report.textExportEnabled && report.birtReport">
<td>
<input type="radio" value="6" name="exportType">Text
</td>
</s:if>
<s:if test="report.excelExportEnabled">
<td>
<input type="radio" value="7" name="exportType">Excel
</td>
</s:if>
<s:if test="report.jasperReport && report.imageExportEnabled">
<td>
<input type="radio" value="4" name="exportType">Image
</td>
</s:if>
<!-- enhancements to support BIRT export types for BIRT 2.3.1 -->
<s:if test="report.birtReport">
<td>
<input type="radio" value="9" name="exportType">MS DOC
</td>
<td>
<input type="radio" value="10" name="exportType">PPT
</td>
<td>
<input type="radio" value="11" name="exportType">Postscript
</td>
</s:if>
<script language="JavaScript" type="text/JavaScript">
setDefaultExportType()
</script>
</tr>
</tbody></table>
<div class="button-bar" id="buttons">
<input class="standardButton" onclick="setNoTarget()" type="submit" value="<s:text name=" name="submitRun">">
<input class="standardButton" onclick="setBlankTarget()" type="submit" value="<s:text name=" name="submitRun">">
<s:if test="user.scheduler">
<input class="standardButton" onclick="setNoTarget()" type="submit" value="<s:text name=" name="submitSchedule">">
</s:if>
<s:if test="report.birtReport">
<td>
<input class="standardButton" onclick="setBlankTarget()" type="submit" value="<s:text name=" name="submitBirtReport">">
</td>
</s:if>
</div>
</form>
<!-- BIRT AJAX Viewer Form -->
<s:if test="report.birtReport">
<div class="img-export important" id="instructions" style="WIDTH: 70%">
BIRT AJAX-Based Report Viewer Output
</div>
<form class="dialog-form" style="WIDTH: 75%" name="birtForm" action="reportOptions.action">
<table class="dialog">
<tbody><tr>
<td class="boldText"><s:text name="View Options"></s:text></td>
<td>
<input type="radio" value="true" name="birt_isHostPage">Full Window
</td>
<td>
<input type="radio" value="false" name="birt_isHostPage">Embedded
</td>
</tr>
</tbody></table>
<div class="button-bar" id="buttons">
<input class="standardButton" onclick="setNoTargetBirt()" type="submit" value="<s:text name=" name="submitBirtReport">">
<input class="standardButton" onclick="setBlankTargetBirt()" type="submit" value="<s:text name=" name="submitBirtReport">">
</div>
</form>
</s:if>
</div>
<s:include value="Footer.jsp"></s:include>
The second JSP we require to modify is BirtViewer.jsp . This is the page
that calls the BIRT Viewer. We use the BIRT Tag library to show the viewer. You can read about it here from BIRT Eclipse site under Using the BIRT Report Viewer
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %>
<%@ taglib uri="/birt.tld" prefix ="birt" %>
<!-- refer here for documentation http://struts.apache.org/2.x/docs/tag-reference.html -->
<html>
<head>
<link href="styles/iv/index.css" type="text/css" rel="stylesheet">
<link href="http://www.eclipse.org/images/eclipse.ico" type="image/x-icon" rel="shortcut icon">
<style>
.warningMessage { color:red; }
</style>
<s:textfield label="Report Name" name="report.file"></s:textfield>
<s:textfield label="Design File Path" name="designFile"></s:textfield>
<?xml:namespace prefix = birt /><birt:viewer id="birtViewer" format="html" width="700" height="450" pattern="frameset" reportdesign="${designFile}" ishostpage="${birt_isHostPage}">
</birt:viewer>
That's the core of the work. There are other a few other Java files
that need to be modified to get this example working - they only
involve very minor changes, so I'll just present some snit bit code Fragments.
In org.efs.openreports.actions.ReportOptionsAction.java,
we need to pass the attribute birt_isHostPage and execute
th Birt Viewer action.
if (report.isBirtReport() && !submitSchedule)
{
log.info("This is a BirtReport (aong)");
if(submitBirtReport) {
log.info("Submitting BIRT REPORT(aong)");
if (birt_isHostPage != null){
log.info("birt_isHostPage" + birt_isHostPage);
} else {
log.info("birt_isHostPage" + birt_isHostPage);
}
return ORStatics.BIRT_VIEWER_ACTION;
}
}
The action is defined in org.efs.openreports.ORStatics.java
as
public static final String BIRT_VIEWER_ACTION = "birtReport";
In org.efs.openreports.ReportConstants, we need
to define the new Export Types "DOC", "PPT", and "POSTSCRIPT".
Lastly, we need to add support to the Export types that OpenReports does not
support that the BirtEngine handles in org.efs.openreports.engine.BirtReportEngine.java
if (input.getExportType() == ExportType.DOC)
{
output.setContentType(ReportEngineOutput.CONTENT_TYPE_MSWORD);
renderOption.setOutputFormat("doc");
}
else if (input.getExportType() == ExportType.PPT)
{
output.setContentType(ReportEngineOutput.CONTENT_TYPE_POWERPOINT);
renderOption.setOutputFormat("ppt");
}
else if (input.getExportType() == ExportType.POSTSCRIPT)
{
output.setContentType(ReportEngineOutput.CONTENT_TYPE_POSTSCRIPT);
renderOption.setOutputFormat("postscript");
}
.That's about it - bundle the package up , build it and deploy it to Tomcat.
I've enclosed the source code here. There are two folders enclosed.
1. src folder -> contains all java classes, struts.xml
2. WebRoot -> Tomcat context files.
*Note* - I've stripped down the WebRoot/WEB-INF folder.
It is missing the lib folder jars that you can get from openReports
(OpenReports 3.1) and the platform folder which contains the BIRT plugins which you can
get from BIRT . (BIRT 2.3.1 Runtime).
Download link: openReportsWithBIRT2.3.1.zip (src files only)
Integrating the BIRT Viewer into OpenReports using Struts Part 1
I wanted to integrate the BIRT 2.3.1 Viewer into OpenReports as a mini-project. The implementation is rather simple, and loose as this was done for a hobby (so nothing professional here) - but hopefully this will help someone out. The final result allows a user in OpenReports to view BIRT reports in the Ajax Based BIRT Web Viewer. I simply utilized the birt tag libraries to deploy the viewer using a simple jsp page.
Since OpenReports uses the Apache Struts 2 Framework, I did a little bit of simple reading on how to configure struts.xml.
Here, I'll give a mini-tutorial on how to get the BIRT Viewer into OpenReports.
The first part of this tutorial will show you how to integrate the viewer into open reports.
I'm using OpenReports 3.1 as of this post and BIRT 2.3.1
1. Download the OpenReports zip file here
2. Download the BIRT 2.3.1 run-time from BIRT here (birt-runtime-2_3_1.zip)
3. Next you'll need to update the BIRT Libraries in OpenReports to the one
which you want to deploy and at the same time we need
to integrate the BIRT Viewer by making some changes to the web.xml descriptor file
(In this tutorial, we'll be using BIRT 2.3.1)
a. We'll first copy the comlete directory that contains the BIRT Viewer located in
birt-runtime-2_3_1\WebViewerExample\webcontent
to
openreports-tomcat\openreports\WebRoot\webcontent
b. Next take the jar files from the BIRT Web Application in
birt-runtime-2_3_1\WebViewerExample\WEB-INF\lib
and carefully copy and replace the old BIRT libraries (2.3.) in
Open reports found in openreports-tomcat\openreports\WebRoot\WEB-INF\lib
b. We need to also port the plugins, tlds, and web.xml to Open Reports.
Copy and integrate the following files from BIRT :
birt-runtime-2_3_1\WebViewerExample\WEB-INF\platform
birt-runtime-2_3_1\WebViewerExample\WEB-INF\tlds
birt-runtime-2_3_1\WebViewerExample\WEB-INF\*.xml
birt-runtime-2_3_1\WebViewerExample\WEB-INF\server-config.wsdd
birt-runtime-2_3_1\WebViewerExample\WEB-INF\viewer.properties
to
openreports-tomcat\openreports\WebRoot\WEB-INF\
For the OpenReport web.xml file, make sure you add the following entries
In part 2 of this tutorial we'll integrate the Viewer into the UI.
Since OpenReports uses the Apache Struts 2 Framework, I did a little bit of simple reading on how to configure struts.xml.
Here, I'll give a mini-tutorial on how to get the BIRT Viewer into OpenReports.
The first part of this tutorial will show you how to integrate the viewer into open reports.
I'm using OpenReports 3.1 as of this post and BIRT 2.3.1
1. Download the OpenReports zip file here
2. Download the BIRT 2.3.1 run-time from BIRT here (birt-runtime-2_3_1.zip)
3. Next you'll need to update the BIRT Libraries in OpenReports to the one
which you want to deploy and at the same time we need
to integrate the BIRT Viewer by making some changes to the web.xml descriptor file
(In this tutorial, we'll be using BIRT 2.3.1)
a. We'll first copy the comlete directory that contains the BIRT Viewer located in
birt-runtime-2_3_1\WebViewerExample\webcontent
to
openreports-tomcat\openreports\WebRoot\webcontent
b. Next take the jar files from the BIRT Web Application in
birt-runtime-2_3_1\WebViewerExample\WEB-INF\lib
and carefully copy and replace the old BIRT libraries (2.3.) in
Open reports found in openreports-tomcat\openreports\WebRoot\WEB-INF\lib
b. We need to also port the plugins, tlds, and web.xml to Open Reports.
Copy and integrate the following files from BIRT :
birt-runtime-2_3_1\WebViewerExample\WEB-INF\platform
birt-runtime-2_3_1\WebViewerExample\WEB-INF\tlds
birt-runtime-2_3_1\WebViewerExample\WEB-INF\*.xml
birt-runtime-2_3_1\WebViewerExample\WEB-INF\server-config.wsdd
birt-runtime-2_3_1\WebViewerExample\WEB-INF\viewer.properties
to
openreports-tomcat\openreports\WebRoot\WEB-INF\
For the OpenReport web.xml file, make sure you add the following entries
BIRT_VIEWER_LOCALE
en-US
BIRT_VIEWER_TIMEZONE
BIRT_VIEWER_WORKING_FOLDER
BIRT_VIEWER_DOCUMENT_FOLDER
WORKING_FOLDER_ACCESS_ONLY
false
BIRT_VIEWER_IMAGE_DIR
BIRT_VIEWER_LOG_DIR
BIRT_VIEWER_LOG_LEVEL
WARNING
BIRT_VIEWER_SCRIPTLIB_DIR
BIRT_RESOURCE_PATH
BIRT_VIEWER_MAX_ROWS
BIRT_VIEWER_MAX_CUBE_ROWLEVELS
BIRT_VIEWER_MAX_CUBE_COLUMNLEVELS
BIRT_VIEWER_CUBE_MEMORY_SIZE
BIRT_OVERWRITE_DOCUMENT
true
BIRT_VIEWER_CONFIG_FILE
WEB-INF/viewer.properties
BIRT_VIEWER_PRINT_SERVERSIDE
ON
HTML_ENABLE_AGENTSTYLE_ENGINE
true
ViewerFilter
org.eclipse.birt.report.filter.ViewerFilter
ViewerFilter
ViewerServlet
ViewerFilter
EngineServlet
org.eclipse.birt.report.listener.ViewerServletContextListener
org.eclipse.birt.report.listener.ViewerHttpSessionListener
ViewerServlet
org.eclipse.birt.report.servlet.ViewerServlet
EngineServlet
org.eclipse.birt.report.servlet.BirtEngineServlet
ViewerServlet
/frameset
ViewerServlet
/run
EngineServlet
/preview
EngineServlet
/download
EngineServlet
/parameter
EngineServlet
/document
EngineServlet
/output
EngineServlet
/extract
/birt.tld
/WEB-INF/tlds/birt.tld
http://www.tonbeller.com/wcf
/WEB-INF/wcf/wcf-tags.tld
http://www.tonbeller.com/jpivot
/WEB-INF/jpivot/jpivot-tags.tld
In part 2 of this tutorial we'll integrate the Viewer into the UI.
Subscribe to:
Posts (Atom)