Integration of BIRT Report with Oracle ADF

Requirement -Using BIRT Report with Oracle ADF

Solution –
Environment:
Jdev 11.1.0.2
JDK 1.6
Weblogic 10
Birt runtime 2.6.2

-> Download birt_runtime_2_6_2 from eclipse.org
-> Extract the content to a folder
-> From the WebViewerExample sub folder, copy lib, platform, tlds folders and server-config.wsdd to WEB-INF of the ViewController project of your ADF application
-> From the WebViewerExample sub folder, copy webcontent, scriptlib, report and logs folders to public_html folder of the ViewController project of the ADF application
-> Create a folder named reports in public_html folder of the project. This will contain all the rptdesign files.
-> Edit web.xml of your project to reflect all the contents of the web.xml of WebViewerExample of birt runtime
-> Because weblogic has an older version of js.jar of rhino, download rhino.jar from www.mozilla.org to WEB-INF\lib folder of ViewController project and add it in your project library classpath.
-> In order to have this rhino take precedence over the older version, edit weblogic-application.xml to include the following in the Application Preferred Packages under Class Loading tab;
org.mozilla.javascript.* and
org.mozilla.classfile.*
-> At this point, you can run your reports from a backing bean as follows;

 
 public void call_report() 
{

FacesContext ctx = FacesContext.getCurrentInstance();
HttpServletRequest request = (HttpServletRequest)ctx.getExternalContext().getRequest();
 
// Redirect browser
url = request.getContextPath()+"/frameset?__report=reports/test.rptdesign";
try {
//url = ctx.getExternalContext().encodeResourceURL(url);
ctx.getExternalContext().redirect(url);
} catch (IOException e) {
e.printStackTrace();
message = new FacesMessage(
FacesMessage.SEVERITY_FATAL, e.getMessage(), "");
FacesContext.getCurrentInstance().addMessage(null, message);
}
}
 

If you get “Error: Java code in jsp source files is not allowed in ojsp.next mode” when running jspx applications, you need to enable user customizations.
In Jdeveloper workspace,
1. Go to Project Property
2. Go to ADF View
3. Enable User Customizations
4. check on Across Sessions using MDS
Also you need to either adapt your code to remove the scriptlets in your JSP page,
or you can use the following Java option to disable OJSP:
-Dadfvdt.disableOjspDeployment=true
You can add this option -Dadfvdt.disableOjspDeployment=true in your file “ide.conf” in the directory “\jdeveloper\ide\bin”
For your Production environment, you can have your Managed WLS ignoring the OJSP mode by adding the Java Option -Dadfvdt.disableOjspDeployment=true
* in the “startManagedWebLogic” (if you want to limit it to a specific Managed Server)
* or “setDomainEnv” (for all managed servers in a domain).

NOTE:
-> Ensure that you have the same version of birt_runtime corresponding to the version of rpt design files
-> birt 2.6.2 is not compatible with google chrome. (works well with ie and firefox)

I found this information in OTN. Special thanks to -Michael Ekeagbara

Happy coding with Vinay Kumar in techartifact.

Vinay

I am an Oracle ACE in Oracle ADF/Webcenter. Sr Java Consultant-working on Java/J2EE/Oracle ADF/Webcenter Portal/ content and Hibernate for several years. I'm an active member of the OTN JDeveloper/Webcenter forum. Passionate about learning new technologies. I am here to share my knowledge. Give your views and suggestion on [email protected] .

More Posts - Website

Follow Me:
TwitterLinkedInGoogle PlusYouTube