无法在Web应用程序中找到witten文件(tomcat,Spring MVC)

时间:2012-06-20 22:47:04

标签: spring tomcat spring-mvc io jfreechart

我正在使用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中。 这是控制器。

@RequestMapping(value="/reports")
public String reportsHandler( Model model ) {
    reportingService.generateChartEquipementsByDepartementDataset() ;
    String curSession = System.getProperty("user.dir") ;
    model.addAttribute("curSession", curSession) ;
    return "home" ;
}

2 个答案:

答案 0 :(得分:2)

Root(/)未指向网络应用的根路径,您需要使用ServletContext.getRealPath()获取“翻译路径”,例如

... new File(request.getServletContext().getRealPath("/chart.jpeg")) ....

答案 1 :(得分:1)

你扔掉你的例外。将其更改为不捕获它,或者至少记录它以查看正在发生的情况。

我怀疑您在尝试写入该目录时遇到权限问题。