Дело не в журнале, а в "prodDB.properties".Вы получаете FileNotFoundException, потому что он не может записать (или, возможно, переименовать) его.Пользователь, который запускает приложение, не должен иметь разрешения на запись в каталог, в котором он создает файлы базы данных HSQLDB.
В конфигурации по умолчанию используется относительный путь, поэтому запись выполняется везде, откуда запускается приложение:
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:prodDb;shutdown=true"
}
}
Одним из исправлений является жесткое кодирование пути в DataSource.groovy:
production {
dataSource {
dbCreate = "update"
url = "jdbc:hsqldb:file:/some/writeable/folder/prodDb;shutdown=true"
}
}
Лучше включить внешние файлы конфигурации в Config.groovy:
grails.config.locations = ["classpath:${appName}-config.groovy"]
и создайте foo-config.groovy, содержащий
dataSource {
url = "jdbc:hsqldb:file:/some/writeable/folder/prodDb;shutdown=true"
}
, и поместите foo-config.groovy в $ TOMCAT_HOME / lib, который находится в classpath Tomcat (измените foo на имя вашего приложения).Таким образом, вы можете развернуть войну в нескольких местах и просто переопределить файл конфигурации, а не жестко запрограммировать одно значение в Config.groovy.