2011-09-07 13 views
2

grails run-appを実行しているとき、私はこのエラーを取得しています:「データベース名[H2]のHibernate dialectを判別できませんでした!」

Error executing bootstraps: Error creating bean with name 'messageSource': 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]!

応じDataSource.groovy

dataSource { 
    pooled = true 
    driverClassName = "org.h2.Driver" 
    username = "sa" 
    password = "" 
    // Adding this causes a different error: 
    // dialect = org.hibernate.dialect.H2Dialect 
} 

hibernate { 
    cache.use_second_level_cache = true 
    cache.use_query_cache = true 
    cache.provider_class = 'net.sf.ehcache.hibernate.EhCacheProvider' 
} 

environments { 
    development { 
    dataSource { 
     dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
     url = "jdbc:h2:mem:devDB" 
    } 
    } 
    test { // test-related stuff } 
    production { // prod-related stuff } 
} 

org.hibernate.dialect.H2Dialect)前述したように、私は明示的に、その後、方言を提供する場合エラーが発生します:

ブートストラップの実行中にエラーが発生しました:名前 'messag eSource ':Beanの初期化に失敗しました。ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionです: 'transactionManager'という名前のBeanの作成中にエラーが発生しました: 'sessionFactory' beanの設定中に 'sessionFactory'への参照を解決できません。ネストされた例外はorg.springframework.beans.factory.BeanCreationExceptionです: 'sessionFactory'という名前のBeanを作成中にエラーが発生しました:initメソッドの呼び出しに失敗しました。ネストされた例外はjava.lang.IncompatibleClassChangeErrorです:クラスorg.hibernate.cfgが見つかりましたが、インタフェースが予期されました

これに対処する方法を知っていますか?

(バグレポートがhttp://jira.grails.org/browse/GRAILS-7994として存在する)のGrailsの

答えて

3

これはジョダタイムプラグインのバグだった:これをやってますが、ビルド設定ファイルは、休止状態のプラグインを含むべきであることがわかります。詳細については、前述のJIRA issueを参照してください。

0

バージョンを使用していますか? Grails 1.3.7を使用していると思います。

H2DialetにはHibernate.jarのバグがいくつかあります。これはGrails 1.3.7の3.3.1であり、Hibernate 3.5とGrails 2.0に含まれています。

私のソリューションは、あなたのDataSource.groovyで、この

dialect='org.hibernate.dialect.H2DialectPatch' 

を使用して、ここからJavaクラスをダウンロードし、次のとおりです。Source Code、混乱を避けるためにH2DialectPatchにそのクラス名を変更し、あなたのsrc/javaの中でそれを置きますフォルダ。

+0

私は2.0.0.BUILD-SNAPSHOTを使用しています。私は確信していますが、問題は2.0.0.M1でも(少なくともH2関連のエラーが)あったと思いますが、何とか「消えた」と今再び復活しました。あなたがリンクしているJira氏によると、パッチはすでに最新のバージョンになっていると思いますか? – user569825

+0

まだGrails 2.0を試していないので、パッチが含まれているかどうかは本当に分かりません。 Grails 1.3.7とH2データベースを使用している3つのプロダクションアプリケーションでこのアプローチを使用していますが、すべて正常に動作しています。 –

+0

Googleから何かを見つけてください。役立つかどうかはわかりません。 http://ricardo.strangevistas.net/tag/h2 –

1

Grails 2.0にアップグレードしたばかりで、同じ問題が発生しましたが、新しいGrails 2.0プロジェクトを作成した場合、そのような問題はありませんでした。同じ答えが出ている人は誰でもこの回答を残します。適切なHibernateライブラリが使用されていることを確認することが重要です。

既存のプロジェクトをアップグレードする場合は、既存のプロジェクトの設定ファイルと新しい2.0プロジェクトの設定ファイルを比較することをお勧めします。

runtime ":hibernate:$grailsVersion" 
2

JDKは、Java 7u25とGrails 2.2.1、溶液であってもよい場合:: Grails suddenly throws error Could not determine Hibernate dialect for database name

エラーがGrailsの2.2.3に固定されている情報が正確です。私はそれをテストし、それは働いた。行うべきポイントです(Spring loaded causes Grails to fail to bootstrap using Oracle JDK 1.7u25):

私はあなたがそれが役に立つことを願っ:)

+0

Grails 2.2.4にバグが再現されたようです – ali

0

問題はJDK 7のバージョン(OpenJDKの7u25)に関連しているようです。

代替では、Oracle JDKのためのUbuntu PPAを使用することです。私のためにうまく働いて、問題を解決し https://launchpad.net/~webupd8team/+archive/java

関連する問題