没有可用的报告设计对象。 :birt报告设计

时间:2015-02-22 05:11:08

标签: birt

您好,我的报告在我的本地计算机上正常运行。我正在使用eclipse birt和birt viewer app。当我在云计算机上部署(我们带到互联网上)时,报告pdf没有显示,而是显示以下错误。可能是什么问题?

我的localhost操作系统是windows7。云服务器是linux。我们正在使用birt4.3。工作环境是tomcat7,mysql数据库。我们正在使用pojodata源生成报告。请帮助我解决这个问题。感谢你。

org.eclipse.birt.report.exception.ViewerException:没有可用的报表设计对象。     在org.eclipse.birt.report.context.ViewerAttributeBean .__ init(ViewerAttributeBean.java:226)     at org.eclipse.birt.report.context.BaseAttributeBean.init(BaseAttributeBean.java:230)     在org.eclipse.birt.report.context.ViewerAttributeBean。(ViewerAttributeBean.java:118)     在org.eclipse.birt.report.context.BirtContext .__ init(BirtContext.java:44)     在org.eclipse.birt.report.context.BaseContext。(BaseContext.java:69)     在org.eclipse.birt.report.context.BirtContext。(BirtContext.java:30)     在org.eclipse.birt.report.servlet.ViewerServlet .__ getContext(ViewerServlet.java:150)     在org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:243)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:647)     在org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)     在javax.servlet.http.HttpServlet.service(HttpServlet.java:728)     在org.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122)     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     在org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749)     在org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487)     在org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412)     在org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339)     在com.zedlabs.birt.BIRTFilterForFrameworks.doFilter(BIRTFilterForFrameworks.java:34)     在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)     在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)     在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)     在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)     在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)     在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)     在org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)     在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)     在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)     在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)     在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:744)

3 个答案:

答案 0 :(得分:1)

BIRT运行时无法找到您的rptdesign文件(报告)。您需要确保已配置BIRT主页。您不需要在基于Eclipse的应用程序中将BIRT设置为home,这就是它在IDE中适用于您的原因。这个link到Actuate可以帮助您设置报告引擎。

Actuate对BIRT家庭及其使用方式的描述:

  

BIRT主页是BIRT插件和库的位置,是报告引擎所需的关键属性。报表引擎无法解析报表设计,也无法在没有定义BIRT主页的情况下呈现报表。对于独立应用程序,BIRT主目录是文件系统位置的绝对路径。对于从应用程序服务器上的Web归档(.war)文件运行的应用程序,BIRT主目录是WAR文件中的相对路径。

对于独立应用程序,请使用以下技术之一:

1 - 使用参数作为BIRT主目录的路径调用EngineConfig.setBIRTHome(),例如:

config.setBIRTHome( "C:/birt-runtime-<version>/ReportEngine" );

2 - 在应用程序环境中,设置BIRT_HOME和CLASSPATH变量以访问所需的库。例如,在Windows批处理文件中,在启动独立应用程序之前包含与以下命令类似的命令:

set BIRT_HOME="C:\birt-runtime-<version>\ReportEngine"
SET CLASSPATH=%BIRT_HOME%\<required library 1>;%BIRT_HOME%\<required library 2 and so on>;%CLASSPATH%

要开发使用BIRT_HOME环境变量的应用程序,请在Eclipse Run对话框的VM参数中设置BIRT_HOME。例如,在VM参数中,键入类似于以下行的文本:

-DBIRT_HOME="C:\birt-runtime-<version>\ReportEngine"

对于已部署的Web应用程序,请使用以下技术之一:

1 - 如果应用程序在文件系统中有一个位置,请使用servlet上下文查找BIRT主目录的实际路径,例如:

config.setBIRTHome( servletContext.getRealPath( "/WEB-INF" ) );

2 - 如果应用程序从WAR文件运行,请使用WAR文件根目录中的相对路径,如以下示例所示。此配置使用PlatformServletContext。

config.setBIRTHome( "" );

<强>另外,

BIRT home是BIRT运行时期望查找报告文件的默认位置。如果您选择其他位置来存储报告,则还必须更新报告查看器上下文参数。此外,由Actuate here描述:

  

要确定报告设计,报告中的图像和日志文件的位置,BIRT报告查看器使用web.xml文件中定义的上下文参数。作为任何这些参数的值提供的路径可以是相对的或绝对的。相对路径相对于BIRT报告查看器应用程序的根文件夹。部署为WAR文件的BIRT报表查看器的可写位置路径必须是绝对路径。

     

默认情况下,报表设计的相对路径是相对于BIRT报表查看器的根文件夹。将所有报告设计放在此文件夹中,或使用URL中报告设计的完整路径。使用相对路径不方便在WAR文件中部署BIRT报告查看器,因为对报告设计的更改需要重新打包WAR文件。要为报告设计设置不同的位置,请更改BIRT报告查看器应用程序的web.xml文件中的BIRT_VIEWER_WORKING_FOLDER参数

设置报告设计的位置:

  1. 导航至$ TOMCAT_INSTALL / webapps。
  2. 根据您的部署配置,通过执行以下步骤之一在代码编辑器中打开web.xml:
    • 如果您使用WAR文件部署BIRT报告查看器,请将birt.war中的WEB-INF / web.xml提取到临时位置。
    • 如果您使用文件夹部署BIRT报告查看器,请导航至/ WEB-INF。
  3. 找到以下元素:
  4. <context-param>
    <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name> 
    <param-value></param-value> 
    </context-param>
    
    1. 更改param-value元素,使其包含报表设计文件夹的绝对路径,类似于以下代码,其中Report_Folder是报表设计文件夹的绝对路径:
    2. <context-param>
      <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name> 
      <param-value>Report_Folder</param-value> 
      </context-param>
      
      1. 保存web.xml并关闭编辑器。
      2. 如果您使用WAR文件部署BIRT报告查看器,请将birt.war中的WEB-INF / web.xml替换为刚刚修改过的文件。
      3. 将报告设计复制到BIRT_VIEWER_WORKING_FOLDER的param-value元素中指定的文件夹中。
      4. 重启Apache Tomcat。
      5. 对于这长长的潜在解决方案列表感到抱歉。 Actuate为您设置环境的不同方式提供了许多有用的详细信息。希望这会有所帮助...

答案 1 :(得分:1)

在web.xml中将以下上下文参数的值设置为false:

<context-param>
    <param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>
    <param-value>false</param-value> 
</context-param>

答案 2 :(得分:0)

以下对我有用:

使用新版本的Birt设计器进行编辑,然后使用文本编辑器打开此文件,并将此标签更改为您的版本。

<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 &lt;4.3.2.v20140218-1056></property>