【问题标题】:Birt chart not showing on web application after deploying .war file on Tomcat server在 Tomcat 服务器上部署 .war 文件后,Birt 图表未显示在 Web 应用程序上
【发布时间】:2015-12-28 08:03:15
【问题描述】:

我已经使用 BIRT(Birt runtime 4.2) 报告完成了一个 Web 应用程序。所有报告都可以在本地机器上以及通过我的 IP 正确访问。创建 .war 文件后,我将其部署在我的生产服务器(Tomcat8)上然后条形图不可见它显示一个十字标记( screenshot) 而不是图表,好像点击导出导出为 PDF,报告将出现在 PDF 文档中。请帮帮我。

注意:报告在应用程序和 PDF 中都能正常工作。

提前致谢..

【问题讨论】:

  • 如果您查看浏览器控制台(使用开发人员工具),在尝试加载条形图图像时是否显示文件未找到错误?
  • 它没有显示这种类型的错误,但它显示的 HTTPS 安全性受到了“HTTP://ServerIP:8443/testApp/webcontent/birt/images/…”的影响。我认为这与这个问题无关。早些时候甚至报告表单也无法通过 IE 呈现,但我已经更改了浏览器设置,即必须在 IE-> Internet 选项 -> 杂项 -> 显示混合内容中启用显示混合内容。进行此更改后,我可以访问表格报告。现在只有报表中的图表和嵌入图像不可见。
  • 在 http 和 https 之间切换时,Birt 查看器会做一些奇怪的事情,请查看您在上一条评论中发布的 URL,它在端口 8443 上显示 HTTP 协议(​​我认为它是HTTPS 连接器)
  • 在 Apache24\conf\extra\httpd-ssl.conf 我们定义了 ProxyPass 和 ProxyPassReverse。如果我们直接在 tomcat 中部署 war 文件并在不使用 apache 2.4 的情况下启动服务器,所有报告都可以正常工作,但我们需要使用 http 和 8080 端口访问报告。如果提供 HTTPS,则报告将无法访问。所以请解释一下我是否需要更改服务器或 BIRT 配置文件中的任何配置?
  • 我的主要问题是用 SO(stackoverflow.com/questions/34261744/…) 在 birt conf 和浏览器中更改了一些配置后,我得到了部分解决方案。现在我面临上述问题(图表和嵌入式图像不是由浏览器呈现)

标签: java apache tomcat birt


【解决方案1】:

基于 cmets,为了避免问题(包括混合内容问题),我能想象到最简单的设置:

  • 设置 tomcat 以在端口 8080 上处理 HTTP 请求(上下文 /myApp,不要在 tomcat 中添加任何 HTTPS 设置)
  • 将 BIRT 的 baseURL 设置为 https://apacheServerHost/myApp
  • 将以下内容添加到您的 httpd.conf apache 配置中:

    ProxyPass /myApp http:tomcatServerIp:8080/myApp

    ProxyPassReverse /myApp http:tomcatServerIp:8080/myApp

  • 将以下内容添加到您的 httpd-ssl.conf apache 配置中:

    ProxyPass /myApp http:tomcatServerIp:8080/myApp

    ProxyPassReverse /myApp http:tomcatServerIp:8080/myApp

为什么会这样?

  • 浏览器对 tomcat 服务器一无所知,它只会“看到”您的 apache 服务器
  • 当您使用 apacheServer 主机 URL 通过 HTTP 连接到 BIRT 查看器时,所有图像都将通过 HTTPS 加载(使用 baseURL 路径),从 HTTPS 加载基本页面 HTTP 是可以的。
  • 当您使用 apacheServer 主机 URL 通过 HTTPS 连接到 BIRT 查看器时,所有图像都将通过 HTTPS(使用 baseURL 路径)加载,这没关系

【讨论】:

  • 谢谢先生的帮助。这并没有解决我的问题。现在我也只得到表格报告而不是图表类型报告。
  • 呃?抱歉,我不明白,建议的解决方案不起作用?您在浏览器控制台中遇到什么错误?
  • 我已经按照您所说的进行了更改。我部署并重新启动了我的服务器。它显示的错误与我在问题中发布的相同。谢谢
  • 您在浏览器开发者的控制台中遇到什么错误?您可能有 404 错误。当您在浏览器中打开 BIRT 查看器(指向 apache 服务器)时,它将使用 http 或 https 打开“查看器 JSP”。然后浏览器将使用 baseURL 属性对服务器进行其他 http/https 调用,该属性必须指向 apache 服务器而不是 tomcat 服务器。
  • 对于 BIRT 的所有文件(例如:birt css、图像)SEC7111:HTTPS 安全性受到 HTTP://serverIP:8443/myApp/webcontent/birt/images/…: 框架集的威胁,我收到以下错误。在浏览器开发者控制台中。
猜你喜欢
  • 2020-07-18
  • 1970-01-01
  • 2012-06-23
  • 2011-01-14
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
相关资源
最近更新 更多