0

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" ;
}
4

2 に答える 2

2

Root ( /) は Web アプリのルート パスを指していません。次のようにServletContext.getRealPath()を使用して、「変換されたパス」を取得する必要があります。

... new File(request.getServletContext().getRealPath("/chart.jpeg")) ....
于 2012-06-20T22:58:12.147 に答える
1

あなたの例外を捨てる。それをキャッチしないように変更するか、少なくともログに記録して何が起こっているかを確認してください。

そのディレクトリに書き込もうとしたときに、アクセス許可の問題があると思われます。

于 2012-06-20T23:44:31.890 に答える