Задание пути к классам для отчетов Jasper для поиска файлов локализации - PullRequest
3 голосов
/ 06 июля 2011

У меня есть приложение grails, и я пытаюсь сохранить все свои .jrxml отчеты в src/reports. Так как я могу указывать на файлы с помощью компилятора jasper, это прекрасно работает. Однако теперь мои отчеты должны быть локализованы, и каждый отчет должен иметь свою собственную локализацию.

У меня есть такие пакеты в src/reports:
com.stefankendall.blah.blah
com.stefankendall.a.b
com.stefankendall.c

В iReport 4.0.2 я могу указать точную папку каждого пакета на пути к классам, но могу ли я сделать это в моем запущенном приложении grails?

Собираю воедино документацию, у меня есть это:

src/reports/com/stefankendall/a/report1.jrxml
src/reports/com/stefankendall/a/report1_Bundle/report1.properties, report1_en_US.properties...

В моем работающем приложении report_Bundle не отображается на пути к классам, поэтому яшма сообщает о бомбе. Есть ли способ указать этот путь, когда я вызываю Джаспер через Groovy? В качестве альтернативы, можно ли как-то добавить src/reports к пути к классам и развернуть его как-нибудь из отчета?

1 Ответ

0 голосов
/ 06 июля 2011

Возможно, есть лучший способ, но ...

_Events.groovy:

eventClasspathStart = {
    addResourceBundlesToClasspath()
}


private def addResourceBundlesToClasspath(){
    classpathSet = false
    File reportsDir = new File("src/reports")
    reportsDir.eachDirRecurse { File directory ->
        if( directory.name.endsWith("_Bundle") ){
            println "Adding ${directory.getAbsolutePath()} to classpath"
            rootLoader.addURL( directory.toURL() )
        }
    }
}
...