Grailsアプリケーションを作成しましたが、完成に向けて順調に進んでおり、Cloud Foundry、Heroku、App Engineなどのさまざまなクラウドプロバイダーでテストしていました。最終的には、Jelasticを使用しました。デプロイのために「war」ファイルをアップロードするだけでよいので、ローカルプラグインの使用を完全にサポートしているように見えました。
今日まで、これに問題はなく、すべて問題ありませんでしたが、いくつかの変更を加え、アプリケーションにいくつかの関係を追加して、BootStrapを使用してデータを入力しました。このブートストラップは以前は機能していましたが、現在は停止しています。以下に、私のブートストラップの例を示します。
def init = { servletContext ->
def adminRole = new SecRole(authority: 'ADMIN').save(flush: true)
def userRole = new SecRole(authority: 'USER').save(flush: true)
def Admin = new SecUser(username: 'admin', email:'admin@admin.com', enabled: true, password: 'password')
def SuperUser = new Areas(name:"SuperUser")
.addToUsers(Admin)
.save(flush:true)
SecUserSecRole.create Admin, adminRole, true
assert SecUser.count() == 1
assert SecRole.count() == 2
assert SecUserSecRole.count() == 1
}
このデータを使用してアプリケーションをローカルで実行すると、BootStrapは正常に機能しますが、Jelasticで実行すると、次のエラーメッセージが表示されます。
SEVERE: Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL
これは、エラーが発生した場所の部分的なスタックトレースにすぎませんが、なぜ発生したのか途方に暮れています。誰かが助けてくれますか?
ありがとう
編集.....
同じエラーメッセージが表示された状態でこのブートストラップデータも試しました:S
def init = { servletContext ->
def adminRole = new SecRole(authority: 'ADMIN').save(flush: true)
def SuperAdmin = new Areas(name: 'Super Admin')
SuperAdmin.save(flush: true)
def area = Areas.findByName('SuperAdmin')
def SuperAdmin = new SecUser(username: 'admin', email:'test@test.com', area: area, enabled: true, password: 'admin')
SuperAdmin.save()
SecUserSecRole.create SuperAdmin, adminRole, true
assert SecUser.count() == 1
assert SecRole.count() == 2
assert SecUserSecRole.count() == 1
}
私が受け取っているエラーメッセージは以下のとおりです。
SEVERE: Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.access.BootstrapException: Error executing bootstraps; nested exception is org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute query; SQL [select this_.id as id3_0_, this_.version as version3_0_, this_.account_expired as account3_3_0_, this_.account_locked as account4_3_0_, this_.area_id as area5_3_0_, this_.email as email3_0_, this_.enabled as enabled3_0_, this_."password" as password8_3_0_, this_.password_expired as password9_3_0_, this_.username as username3_0_ from sec_user this_ where this_.username=?]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
BootStrapデータを削除しましたが、アプリは正常に起動します。クラウド上ではなくローカルでブートストラップを使用して正常に実行されるため、誰かがこれに光を当てることができますか?前もって感謝します