Grails 2.3.7(Maven)とJava 7を使用する従来のプロジェクトで作業していて、MongoDBデータベースに接続を追加する必要があります。既存の休止状態を維持します。Grails 2.3.7を使用してMongoDBドメインクラスを照会しようとすると、IllegalStateExceptionが発生する
私は私ののpom.xmlファイルに以下を追加しました:
plugins {
compile ':mongodb:3.0.2'
compile 'org.grails.plugins:mongodb:3.0.2'
}
(私は両方のそれを試してみました:BuildConfig.groovyファイルへ
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>mongodb</artifactId>
<type>zip</type>
<version>3.0.2</version>
</dependency>
そして、これコンパイル 'org.grails.plugins:mongodb:3.0.2' line)
次のように私は、DB接続を設定している DataSource.groovyファイルで:
grails {
mongodb {
host = "xxx.xxx.xxx.xxx"
port = "27017"
databaseName = "db"
username = "user"
password = "pass"
}
}
と私はそこに任意の値を変更した場合のGrailsアプリケーションも起動しないため、接続自体は、動作しているようです。
が、私はその後、Thingy.groovyが、簡単なドメインクラスを作成しました:私は、アプリを起動したときに
今class Thingy {
String identifier
String description
static mapWith = "mongo"
static constraints = {
}
}
とし、そのクラスのメソッドへの呼び出しは、IllegalStateExceptionがスローされます:"Method on class [Thingy] was used outside of a Grails application. If running in the context of a test using the mocking API or bootstrap Grails correctly."
。しかし、同じ場所で、他のデータソースを使用する古いDomainクラスのメソッドを呼び出すと、それらは魅力的に機能します。
また、サーバーを起動するときに、関連するかもしれない別の例外が表示されますが、どうすればよいか分かりません。ERROR - Error configuring dynamic methods for plugin [mongodb:3.0.2]: org/grails/datastore/mapping/query/api/BuildableCriteria java.lang.NoClassDefFoundError: org/grails/datastore/mapping/query/api/BuildableCriteria
MongoDBプラグイン3.0.3を使用してみましたが、同じ結果が得られました。