2012-06-20 40 views
0

我正在使用JFreeChart在我的Web應用程序中生成一些報告,我使用JFreechart構建圖表並將其保存爲圖像,但我從未找到該圖像在我的Tomcat目錄中。無法在web應用程序中找到witten文件(tomcat,Spring MVC)

我試圖打印工作目錄,它給了我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

根(/)不指向Web應用程序的根路徑,你需要得到一個「翻譯路徑」,通過使用ServletContext.getRealPath(),像

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

它給了我同樣的結果。 '@Autowired private ServletContext context;' 'String curSession = context.getRealPath(「/」);' – elaich

+0

我很難相信 - 你能發佈使用getRealPath的代碼嗎? – fvu

+0

它就在上面。 – elaich

1

你扔掉你例外。改變它,要麼不抓住它,要麼至少記錄它看看發生了什麼。

我懷疑在嘗試寫入該目錄時存在權限問題。

相關問題