Grails внезапно выдает ошибку Не удалось определить Hibernate диалект для имени базы данных

Я использовалGrails в версии2.2.0 на Ubuntu в течение некоторого времени, и все прошло хорошо. Мое приложение работает нормально. Я обновил свой JDK до 1.7.0_25 вчера, и яя уверен, чтоЕдинственное изменение, которое я сделал. С тех пор все мои приложения выдают ошибку при вызове run-app (трассировка стека внизу).

Could not determine Hibernate dialect for database name [H2]! # or PostgresSQL if postgres is used

Я возился с плагином webxml в одном проекте, но я неНе думаю, что это испортит другие приложения. Я использую git для контроля версий, и даже если я вернусь к стабильным коммитам, ошибка все равно появится.

Самое смешное, что, если я запустите приложениеот IntelliJ Idea, Этоработает как шарм, Но я действительно хочу использовать классический инструмент командной строки.

IntelliJ запустить приложение с этой командой:

/usr/lib/jvm/java-7-oracle/bin/java -Dgrails.home=/usr/share/grails/2.2.0 -Dbase.dir=/home/freeman/Dokumenty/cms/plugins/Diagnostics -Dtools.jar=/usr/lib/jvm/java-7-oracle/lib/tools.jar -Dgroovy.starter.conf=/usr/share/grails/2.2.0/conf/groovy-starter.conf -Xmx512M -XX:MaxPermSize=192m -Didea.launcher.port=7533 -Didea.launcher.bin.path=/home/freeman/programy/idea-IU-117.798/bin -Dfile.encoding=UTF-8 -classpath /usr/share/grails/2.2.0/lib/org.codehaus.groovy/groovy-all/jars/groovy-all-2.0.5.jar:/usr/share/grails/2.2.0/dist/grails-bootstrap-2.2.0.jar:/home/freeman/programy/idea-IU-117.798/lib/idea_rt.jar com.intellij.rt.execution.application.AppMain org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf /usr/share/grails/2.2.0/conf/groovy-starter.conf run-app

Я также пытался удалить ~ / .grails / 2.2.0 / projects / Diagnostics, но это не помогло.Т помочь.

Есть идеи, что с ним не так? Я'м претте отчаянно.

Спасибо за вашу помощь.

Трассировки стека:

2013-06-25 11:19:59,754 [localhost-startStop-1] ERROR context.GrailsContextLoader  - Error initializing Grails: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
Line | Method
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread

Caused by BeanCreationException: Error creating bean with name 'transactionManager': Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread

Caused by BeanCreationException: Error creating bean with name 'sessionFactory': Cannot resolve reference to bean 'hibernateProperties' while setting bean property 'hibernateProperties'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread

Caused by BeanCreationException: Error creating bean with name 'hibernateProperties': Cannot resolve reference to bean 'dialectDetector' while setting bean property 'properties' with key [hibernate.dialect]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread

Caused by BeanCreationException: Error creating bean with name 'dialectDetector': Invocation of init method failed; nested exception is org.codehaus.groovy.grails.orm.hibernate.exceptions.CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread

Caused by CouldNotDetermineHibernateDialectException: Could not determine Hibernate dialect for database name [H2]!
->>  334 | innerRun  in java.util.concurrent.FutureTask$Sync
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        |    166 | run       in java.util.concurrent.FutureTask
|   1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    615 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    724 | run . . . in java.lang.Thread
 Mauro18 июл. 2013 г., 13:24
У меня такая же проблема, и ям с использованием грааля-2.2.3 :-(
 Frank25 июн. 2013 г., 14:31
Спасибо за ваш ответ. Я предполагаю, что есть некоторый беспорядок с путями класса. У меня нетЯ нашел решение, хотя.
 Silberling25 июн. 2013 г., 12:54
То же самое здесь, то же самое обновление, та же самая ошибка. Я использую Netbeans вместо IntelliJ, и в Netbeans была та же ошибка. После того, как я явно добавил путь к файлам h2 * .jar (у меня их несколько в моей среде) ко всем библиотекам Netbeans, я могу запустить приложение из Netbeans. Я все еще могуНе могу понять, как заставить работать командную строку, но, возможно, это поможет.

Ответы на вопрос(5)

ешением в моем случае (благодаря комментарию от Halil) было обновление до JDK 1.7.0_45.

Альтернативой является использование Ubuntu PPA для Oracle JDK:https://launchpad.net/~webupd8team/+archive/java

который работал хорошо для меня и решил проблему.

Решение Вопроса

которое вызывает проблемы при использовании подпружиненных. Это'Исправлено в Grails 2.2.3, так что обновление до этого исправит это. Увидетьhttp://jira.grails.org/browse/GRAILS-10183

 Burt Beckwith25 июн. 2013 г., 20:53
использованиеgvmtool.net - Это's замена для поддержки apt-get и обновляется очень быстро.
 Frank25 июн. 2013 г., 20:22
Я обновился, и проблема исчезла (мне пришлось делать это вручную, потому что самая новая версия для apt-get - 2.2.0: - /). В любом случае, ты спас меня пару часов. Большое спасибо!
 Halil04 дек. 2013 г., 19:53
Я решил проблему, обновив Java с 1.7.0_25 до 1.7.0_45.
 aeischeid19 июл. 2013 г., 20:34
с Grails 2.2.3 Он все еще не работает для OpenJDK 1.7.0_25 в Linux, Oracle 'JDK действительно работает, хотя.

кажется, решила его для меня (Ubuntu 13.04).

я разместил комментарий об ошибке grails для (неразрушающего) обходного пути, который по крайней мере в моем случае работает с 2.2.1:

http://jira.grails.org/browse/GRAILS-10183?focusedCommentId=76068&страница = com.atlassian.jira.plugin.system.issuetabpanels: комментарий-tabpanel # комментарий-76068

Скачайте springloaded-core-1.1.3.jar и сохраните его локально (я храню его в дереве исходных текстов, чтобы он был зарегистрирован)

Редактировать Грейлс

#### start of hack to workaround GRAILS-10183 (http://jira.grails.org/browse/GRAILS-10183)
SPRINGLOADED_CORE_1_1_3="../../local-maven-repo/org/springsource/springloaded/springloaded-core/1.1.3/springloaded-core-1.1.3.jar"
STARTER_CLASSPATH="$SPRINGLOADED_CORE_1_1_3:wrapper/grails-wrapper-runtime-2.2.1.jar:wrapper:."
#STARTER_CLASSPATH="wrapper/grails-wrapper-runtime-2.2.1.jar:wrapper:."
#### end of hack to workaround GRAILS-10183 (http://jira.grails.org/browse/GRAILS-10183)

Теперь, когда вы используете обертку Grails, подпружиненное ядро 1.1.3 является первым в classpath, и оно просто работает. Поскольку и файл jar, и grailsw проверяются с помощью дерева исходных текстов, любой, кто его проверяет, получает выгоду от исправления, которое лучше, чем просить всех взломать свою локальную установку grails.

Ваш ответ на вопрос