【问题标题】:Java Web server display images from file system?Java Web 服务器显示来自文件系统的图像?
【发布时间】:2016-07-10 08:06:52
【问题描述】:

我正在开发一个 Web 应用程序,它每天收集数据并在网页上显示数据可视化图像。我的 Web 服务器是 Tomcat。现在它可以收集数据并将数据导入 MySQL。然后它使用JFreeChart库根据给定的数据生成可视化图像,并将图像导出到本地文件系统。例如,我将图像导出到“C:/hdsdata/2016-01-01/”等文件夹。 但我不知道如何在网页上显示生成的图像。我只能在 war 目录下显示可视化图像,而不是文件系统目录。或者我不知道如何将可视化图像导出到war目录。

【问题讨论】:

  • 当你调用ChartUtilities.saveChartAsXXXX() 例如,ChartUtilities.saveChartAsJPEG() 第一个参数是文件对象,设置文件的路径为<tomcat-path>/webapps/<your-webapp-path>/charts/file_name.png 然后它将被保存在你的webapp路径中
  • .../charts/ 可以是您可以在 webapp 文件夹中创建的任何其他文件夹名称
  • 你的 Tomcat 版本是多少?
  • @ChristopherSchultz 现在是 7.0.59

标签: java tomcat web visualization data-visualization


【解决方案1】:

将文件写入 Web 应用程序的部署目录是错误的:如果取消部署应用程序,Tomcat 将删除所有内容,删除所有这些文件。

相反,请查看 Web 应用程序的 context.xml 文件中 <Context> 元素上的 Tomcat 的 aliases attribute

您可以使用它来将应用程序外部的路径映射到应用程序的 URL 空间。例如,如果您的文件被写入/home/images/charts/[whatever].jpg,您可以像这样配置您的aliases

<Context aliases="/images=/home/images/charts">

这将保护您的文件在您取消部署上下文时不被删除。您还可以将其存储在网络文件共享或比 Web 应用程序的部署目录更方便的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-30
    • 2012-10-06
    • 1970-01-01
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多