There is no report design object available. :birt report design - birt

Hi I have a report which is working fine on my local machine. i am using eclipse birt and birt viewer app. when i deploy on the cloud machine (which we brought on internet) report pdf is not getting displayed instead it is showing the following error. what could be the problem?
My localhost OS is windows7. cloud server is linux. we are working with birt4.3. work environment is tomcat7 ,mysql database. we are using pojodata source for report generation. kindly help me solve this. thanking you.
org.eclipse.birt.report.exception.ViewerException: There is no report design object available.
at org.eclipse.birt.report.context.ViewerAttributeBean.__init(ViewerAttributeBean.java:226)
at org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:230)
at org.eclipse.birt.report.context.ViewerAttributeBean.(ViewerAttributeBean.java:118)
at org.eclipse.birt.report.context.BirtContext.__init(BirtContext.java:44)
at org.eclipse.birt.report.context.BaseContext.(BaseContext.java:69)
at org.eclipse.birt.report.context.BirtContext.(BirtContext.java:30)
at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:150)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:243)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)
at com.zedlabs.birt.BIRTFilterForFrameworks.doFilter(BIRTFilterForFrameworks.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

The BIRT runtime is unable to locate your rptdesign files (the reports). You need to make sure you have configured the BIRT home. You do not need to set BIRT home in an Eclipse-based application which is why it works for you in the IDE. This link to Actuate provides help setting up the report engine.
Actuate's description of BIRT home and how its used:
The BIRT home, which is the location of the BIRT plug-ins and libraries, is the key property that the report engine requires. The report engine cannot parse a report design nor render the report without a defined BIRT home. For a stand-alone application, the BIRT home is an absolute path to a file system location. For an application running from a web archive (.war) file on an application server, the BIRT home is a relative path in the WAR file.
For a stand-alone application, use one of the following techniques:
1 - Call EngineConfig.setBIRTHome( ) with an argument that is the path to the BIRT home directory, for example:
config.setBIRTHome( "C:/birt-runtime-<version>/ReportEngine" );
2 - In the application’s environment, set up the BIRT_HOME and CLASSPATH variables to access the required libraries. For example, in a Windows batch file, include commands similar to the following ones before launching the stand-alone application:
set BIRT_HOME="C:\birt-runtime-<version>\ReportEngine"
SET CLASSPATH=%BIRT_HOME%\<required library 1>;%BIRT_HOME%\<required library 2 and so on>;%CLASSPATH%
To develop an application that uses a BIRT_HOME environment variable, set BIRT_HOME in the VM arguments in the Eclipse Run dialog. For example, in VM arguments, type text similar to the following line:
-DBIRT_HOME="C:\birt-runtime-<version>\ReportEngine"
For a deployed web application, use one of the following techniques:
1 - If the application has a location in the file system, use the servlet context to find the real path of the BIRT home, for example:
config.setBIRTHome( servletContext.getRealPath( "/WEB-INF" ) );
2 - If the application runs from a WAR file, use a relative path from the WAR file root, as shown in the following example. This configuration uses PlatformServletContext.
config.setBIRTHome( "" );
Additionally,
BIRT home is the default location the BIRT runtime is expecting to find the report files. If you choose another location to store your reports, you will also have to update the report viewer context parameters. Also, described by Actuate here:
To determine the locations for report designs, images in reports, and log files, the BIRT report viewer uses context parameters defined in the web.xml file. The path provided as the value for any of these parameters can be relative or absolute. A relative path is relative to the root folder of the BIRT report viewer application. A path to a writable location for a BIRT report viewer that is deployed as a WAR file must be an absolute path.
By default, the relative path for report designs is relative to the BIRT report viewer’s root folder. Place all report designs in this folder or use the full path to the report design in the URL. Using a relative path is not convenient for deployment of the BIRT report viewer in a WAR file as changes to report designs would require repackaging the WAR file. To set a different location for report designs, change the BIRT_VIEWER_WORKING_FOLDER parameter in the BIRT report viewer application’s web.xml file
To set the location for report designs:
Navigate to $TOMCAT_INSTALL/webapps.
Open web.xml in a code editor by performing one of the following steps, based on your deployment configuration:
If you use a WAR file to deploy the BIRT report viewer, extract WEB-INF/web.xml from birt.war into a temporary location.
If you use a folder to deploy the BIRT report viewer, navigate to /WEB-INF.
Locate the following element:
<context-param>
<param-name>BIRT_VIEWER_WORKING_FOLDER</param-name>
<param-value></param-value>
</context-param>
Change the param-value element, so that it includes the absolute path to the folder for the report designs, similar to the following code where Report_Folder is the absolute path to the folder for the report designs:
<context-param>
<param-name>BIRT_VIEWER_WORKING_FOLDER</param-name>
<param-value>Report_Folder</param-value>
</context-param>
Save web.xml and close the editor.
If you use a WAR file to deploy the BIRT report viewer, replace WEB-INF/web.xml in birt.war with the file just modified.
Copy the report designs into the folder specified in the param-value element for BIRT_VIEWER_WORKING_FOLDER.
Restart Apache Tomcat.
Sorry for this long list of potential solutions. Actuate provides many helpful details for the number of different ways you may have set up your environment. Hope this helps...

Set value of following context param to false in web.xml:
<context-param>
<param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>
<param-value>false</param-value>
</context-param>

The following worked for me:
Edit with new version of Birt designer, then open this file with text editor and change this labels to your version.
<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.17" id="1">
<property name="createdBy">Eclipse BIRT Designer Version 4.3.2.v20140211-1400 Build <4.3.2.v20140218-1056></property>

Ensure BIRT development tools match the runtime version.
If you transfert your rptdesign by FTP/SFTP, ensure the transfer is made is ASCII

Related

tika app.jar does not convert the plain test to document (pdf) in jmeter

I am facing this issues even though after adding the .jar file in the lib directory still the expected outcome is not there hre is the question
Response data tab this error message has displayed
"Missing tika-app.jar in classpath. Unable to convert to plain text this kind of document.Download the tika-app-x.x.jar file from http://tika.apache.org/download.html"
How do i solve this issues
And put the file in /lib directory
Go to Apache Tika download page
Click on Mirrors for tika-app-x.xx.jar link
Choose the closest mirror and store the file somewhere to JMeter Classpath (it is enough to drop the file to "lib" folder of your JMeter installation)
Restart JMeter to pick the Tika jar up
**Select Document from the View Results Tree listener drop-down menu
You should now be able to see the contents of the binary files under View Results Tree listener. Check out How to Extract Data From Files With JMeter for a little bit more detailed explanation and to learn how to perform correlations/assertions on the binary responses.
When I want to make sure the jar is added
I open in GUI mode,
Go to Test Plan and click Browse near Add directory or jar to classpath below
Add jar manually
This will make sure you use the jar on execution
As per http://jmeter.apache.org/usermanual/component_reference.html#View_Results_Tree:
A requirement to the Document view is to download the Apache Tika binary package (tika-app-x.x.jar) and put this in JMETER_HOME/lib directory.
SO you need to download Apache Tika-app from here:
https://tika.apache.org/download.html
And put it in jmeter/lib folder.

deploymentProperties not read (websphere)

Using websphere 8.5. I am trying to use Monitored Directory deployment and use a deployment properties file using this guide
I have enabled the monitored deploy in the global settings. I have also extracted the properties file using wsadmin and verified that it contains the correct configuration (eg. path to a shared library).
I have put the myconfig.properties file in:
C:\websphere\myserver\monitoredDeployableApps\deploymentProperties
I then drag my application test-ear-app.ear (an ear file containing a war file) into:
C:\websphere\myserver\monitoredDeployableApps\servers\my_server
As a result the app is automatically loaded but the myconfig.properties is NOT loaded and hence I need to manually specify the shared library afterwards.
Any ideas why the myconfig.properties is not loaded?
Actually when you deploy using property file you don't drag ear to monitored directory, but just the property file. So in your case you should just drag myconfig.properties to the monitoredDeployableApps/deploymentProperties directory. In your config file you have to define location of your ear by EarFileLocation=/temp/yourApp.ear it will be automatically loaded and installed in proper scope defined by the TargetServer/TargetServer/TargetCluster properties.
See detailed description in page Installing enterprise application files by adding properties files to a monitored directory
As I read, I think the procedure is the opposite of what you were currently doing : drop the Ear first and then start the install process with the props file.

ASP.Net Exception Shows File Path

When my ASP.Net MVC application encounters an error, the full file path of the c# class is displayed in the exception even though I've only deployed binaries. E.g.
at: C:\DevelopmentServer\MVC_Project\AccountManagement.cs line 45
Where is this path information being stored? Is it in the compiled dll and is there a way to remove it?
I believe this is stored in the PDB files generated during the compile, and it reflects the paths to the code on the build machine.

Unable to run oracle report contains attached library

Oracle Application server 10g
Oracle report is using a library. When I'm attaching library it asked me if I want to remove path.
It works with option "NO" - not removing library, but it does not work if I select "YES". and I got the Unable to run report error.
although I already set the library path in the following places:-
REGEDIT FORMS_PATH to C:\DevSuiteHome_1\forms;
REGEDIT REPORTS_PATH to C:\DevSuiteHome_1\forms;
default.env file FORMS_PATH to C:\DevSuiteHome_1\forms;
Some things to confirm:
Ensure the library is present in the same directory as the reports - without the path info, the library is picked from the same location as the reports
Ensure the environment variables are set correctly so that the Reports engine is looking at the right directory to pick up the libraries

Mapping security role to user/group mapping in RAD

I am using a WebSphere Portal Server that runs some servlets as well. Previously, while I was using eclipse to develop I used this solution to add roles in my web.xml file and map them in the integrated solutions console in the menu Applications > Application Types > Enterprise Applications > NAME_OF_APP > Security role to user/group mapping > Map users/groups. But now I am using the Rapid Application Developer and I can deploy directly through it. Unfortunately I can't use the the console anymore to create role mappings (as explained here by TroyBishop in the second post nicely).
All over the internet people say, that I can create the role mappings using the file META-INF/ibm-application-bnd.xml / META-INF/ibm-application-bnd.xmi, but nobody seems to care about saying why that file is sometimes called .xmi and sometimes called .xml. Is this irrelevant or treated differently? And HOW the hack do I actually use the file? What's the format??
EDIT: And what about the ibm-web-bnd.xmi? Does that have to do with it as well?
Go to server view in RAD, double click WebSphere to open its overview, uncheck "Minimize application files copied to the server". Save it. Remove and add again the application so changes take effect. That should solve all missing "OK/Apply/Save" buttons.
The XMI files were meant for tools (and not for humans). XML files on the other hand were targetted.
For a long long time, till WAS V7, if i recall correctly, IBM used only the xmi files. It is with the advent of Java EE 5 that all the DDs were using XML instead of xmi.
Both the bnd and ext files used to use the XMI (XML Meta data interchange format). These are the IBM specific DDs.
Details about difference between xmi and xml binding files (from the Infocenter)
For IBM® extension and binding files, the .xmi or .xml file name
extension is different depending on whether you are using a pre-Java
EE 5 application or module or a Java EE 5 or later application or
module. An IBM extension or binding file is named ibm--ext.xmi or
ibm--bnd.xmi where * is the type of extension or binding file such as
app, application, ejb-jar, or web. The following conditions apply:
For an application or module that uses a Java EE version prior to version 5, the file extension must be .xmi.
For an application or module that uses Java EE 5 or later, the file extension must be .xml. If .xmi files are included with the
application or module, the product ignores the .xmi files.
To generate these files:
If you have RAD - then select the project (Web, EJB), right click, then select Java EE > Generate WebSphere Binding/Extension Deployment Descriptor. If you don't see that option ensure that in project properties, Project Facets - you have WebSphere Coexistence/Extended facet enabled.
If you use Eclipse - install WebSphere Developer Tools, which will enable same option
To edit bindings via console you have to change default publishing configuration in RAD as described in the Rafael answer.

Resources