我使用 JFreeChart 在我的 Web 应用程序中生成一些报告,我使用 JFreechart 构建图表并将其保存为图像,但我从未在我的 Tomcat 目录中找到该图像。
我尝试打印工作目录,它给了我 Tomcat 根目录,所以我想知道为什么图像从未写入该目录。
这是我的服务方法:
public DefaultPieDataset generateChartEquipementsByDepartementDataset(){
DefaultPieDataset pieDataset ;
pieDataset = convertMapToDataset(reportsDao.getEquipementsByDepartementDataset()) ;
JFreeChart chart = ChartFactory.createPieChart(
"% Equipements par departement",
pieDataset,
true,
true,
false
) ;
try{
ChartUtilities.saveChartAsJPEG(new File("/chart.jpeg"), chart, 400, 400) ;
}catch(Exception ex){}
return pieDataset ;
}
当我测试它时,它会在我的应用程序的根目录中写入图像,但不会在 tomcat 中写入图像。 这是 Controller 。
@RequestMapping(value="/reports")
public String reportsHandler( Model model ) {
reportingService.generateChartEquipementsByDepartementDataset() ;
String curSession = System.getProperty("user.dir") ;
model.addAttribute("curSession", curSession) ;
return "home" ;
}
最佳答案
Root ( /
) 不指向网络应用程序的根路径,您需要使用 ServletContext.getRealPath() 获取“翻译后的路径” , 喜欢
... new File(request.getServletContext().getRealPath("/chart.jpeg")) ....
关于spring - 无法在 Web 应用程序(tomcat、Spring MVC)中找到 witten 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11129278/