Total Pageviews

2011/06/14

How to Access .jasper file from EAR File


Problem
根據標準組所提供的讀取.jasper的方式,是將.jasper的目錄寫死,此寫法未來會有很大的問題。如:
1. 若有多位開發人員同時進行開發,大家都存放於不同的地方,會導致某人的環境可以執行,其他人卻無法執行的狀況。
2. 若開發機、測試機、正式機所放置的目錄不一樣,這樣deploy到不同的機器,又忘記手動去更改目錄,會導致在測試機可以執行,正式機卻無法執行的窘境。

為了改善上述的潛在問題,以下是解決方式:

File Structure
My ReportWrapper class is under gov.fdc.nig.report

.japser files are under resources/report


After we build our application to ear file, the file structure looks like this:


Source Code

1
2
3
4
5
    private final static String JASPER_CLASSPATH = "..\\..\\..\\..\\report\\templates\\";
    InputStream reportStream
     = getClass().getResourceAsStream(JASPER_CLASSPATH.concat(fileName.concat(".jasper")));
    JasperReport report = (JasperReport) JRLoader.loadObject(reportStream);
    


Benefit
透過上述的寫法,採相對路徑的方式來讀取.jasper file,避免上述的問題

No comments: