当前位置: 首页 > 知识库问答 >
问题:

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

冉德元
2023-03-14

嗨,我有一个报告,它在我的本地机器上运行良好。我正在使用eclipse birt和birt viewer应用程序。当我在云机器(我们在互联网上带来的)上部署时,报告pdf没有显示,而是显示以下错误。有什么问题吗?

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

报告异常:没有可用的报表设计对象。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.(观众归因.java:118)在org.eclipse.birt.report.context.BirtContext.__init(比尔特语境.java:44)在组织日食。(基本上下文.java:69) 在组织日食.birt.报告.上下文.比尔特上下文。(BirtContext.java:30) at org.eclipse.birt.report.servlet.ViewerServlet.__getContext(ViewerServlet.java:150) at org.eclipse.birt.report..java servlet.BirtSoapMessageDispatcherServlet.doPost(BirtSoapMessageDispatcherServlet.java:243) at javax.servlet.servlet.service.java.http.Servlet.service(httpServlet..java:728) atorg.eclipse.birt.report.servlet.BirtSoapMessageDispatcherServlet.service(BirtSoapMessageDispatcherServlet.java:122) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) at org.apache.catalina.core.core.applicationFilterChain.doFilterChain..java:210) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) atorg.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.internalDoFilterter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilterChain(应用程序过滤器链.java:210) at org.apache.catalina.core.标准包装.invoke(StandardWrapperValve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(标准文本.java:123) at org.apache.catalina.身份验证器Base.invoke(身份验证器Base.java:472) at org.apache.catalina.core.标准HostValve.invoke(标准主机.java:171)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) at org.apache.catalina.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.连接器.CoyoteAdapter.service(CoyoteAdapter.java:407) at org.apache.coyote.ajpProcessor.process(AjpProcessor.java:200) 在 org.apache.coyote.AbstractProtocol$AbstractContectionhandler.process(摘要Protocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) at java.util.concurrent.threadPoolexecutor.runWorker(线程池探索者.java:1145) at java.util.concurrent.线程检测器$Worker.run(线程池检测器.java:615) at java.lang.Thread.run(线程.java:744)

共有3个答案

步浩壤
2023-03-14

以下内容对我有效:

用新版本的Birt designer编辑,然后用文本编辑器打开这个文件,把这个标签改成你的版本。

<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>
魏鸿禧
2023-03-14

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

<context-param>
    <param-name>WORKING_FOLDER_ACCESS_ONLY</param-name>
    <param-value>false</param-value> 
</context-param>
仉昱
2023-03-14

BIRT运行时无法找到您的rptdesign文件(报告)。您需要确保您已经配置了BIRT home。您不需要在基于Eclipse的应用程序中设置BIRT home,这就是它在IDE中适合您的原因。Actuate的此链接提供了设置报告引擎的帮助。

安讯对BIRT住宅及其使用方式的描述:

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

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

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

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

2 -在应用程序的环境中,设置BIRT_HOME和类路径变量来访问所需的库。例如,在启动独立应用程序之前,在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运行对话框的VM参数中设置BIRT_HOME。例如,在虚拟机参数中,键入类似于以下行的文本:

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

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

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

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

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

config.setBIRTHome( "" );

此外,

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

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

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

要设置报表设计的位置:

  • 导航到$TOMCAT_安装/网络应用。
  • 根据您的部署配置,通过执行以下步骤之一,在代码编辑器中打开 Web.xml:
    • 如果使用 WAR 文件部署 BIRT 报告查看器,请将 WEB-INF/web.xml从 birt.war 中提取到临时位置。
    • 如果使用文件夹部署 BIRT 报表查看器,请导航到 /WEB-INF。
    <context-param>
    <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name> 
    <param-value></param-value> 
    </context-param>
    
    <context-param>
    <param-name>BIRT_VIEWER_WORKING_FOLDER</param-name> 
    <param-value>Report_Folder</param-value> 
    </context-param>
    

    很抱歉列出这么长的潜在解决方案。安讯提供了许多有用的详细信息,说明您可能设置环境的不同方式。希望这有所帮助...

 类似资料:
  • 我可以通过默认BIRT目录查看BIRT报告 但我不能运行BIRT报告 有什么解决办法吗?? 对不起,我的问题问错了方向 如果我将我的项目上传到Web托管服务器,是否需要任何配置??

  • 设计 选项卡用来创建及设计报表。设计工作区分为两个区域:工作台和画布。工作台是由工具栏,元件板,尺和其他可以用来运用画布的工具组成。画布是一个包含报表版面的区域‧这是我们放置的装饰和元件,将最终控制报表每一页的内容。 报表向导 报表向导 是报表创建工具多个部份的其中一个,帶来其他报表产品没有的专业及注重细节的水准。如果你或你的最终用户在其他产品使用标准的 Windows 向导,那么你将能够迅速识别

  • 我有一份报告,不管表中的行数是多少,我都想把它改为1页(A4)。通常是10行,但在某些情况下可能更多。 无论如何,我需要在一个固定的背景下使用BIRT(第三方应用),例如,没有调整BIRT浏览器或url参数的选项。因此,我如何将此选项添加到我的报告设计中,以便自动应用它?

  • 标记的答案使我走上了正确的轨道。

  • 我们使用的是JasperSoft Studio 6.6.0的免费社区版。在本地设计并查看我的报告后,我将其部署到我们的JasperSoft服务器上。当我用相同的参数在服务器上运行它时,我会得到一个空白页输出。 注意:报表使用3的水平printOrder和columnCount打印标签。字段尽可能通用。 感谢任何帮助或建议。

  • 我是Jasper报告的新手。我正在使用Jaspersoft iReport Designer 4.5.1。使用以下格式的数据集创建报告(让我称之为Format1): 其中Q1和Q2是一些计算的商。现在Jasper设计师要求系列(不同的颜色)、类别(X轴)和值(Y轴)。由于我的“值”分布在列中,我需要取消数据的旋转以获得这种格式:(格式2) 能够将“Quo Type”作为系列传递,将“日期”传递为类