私のgrailsアプリには次のコードがあります:
def list () {
def roles = principal.authorities*.authority
def page = roles.contains("ROLE_ADMIN")? "allcolors": "usercolors"
if (params.sort == "latest" || params.sort == null) {
logger.debug("came in if");
render view: page, model: [colorlist: colorService.colorList()]
}
else
render view: page, model: [colorlist: colorService.colorListForUser()]
}
grails run-app
上記のコードでアプリケーションを実行すると、正常に動作します。ただし、上記のコードで作成された war ファイルをデプロイすると、デバッグ ステートメントがまだ出力されgrails test war target/myapp.war
ていても、「ページが見つかりません」というエラーが表示されて機能しません。came in if
このアプリを開発中も実行しようとしましgrails test run-app
たが、それでも上記は機能しません。興味深いことに、アプリをprod
モード ( grails prod run-app
) で実行すると、すべて正常に動作します。ですから、それは確かにtest
環境と関係があります
また、データの不一致がないことを確認するために、同じ開発データベースを指すように dev test と prod を変更しました。
私のアプリには、テスト環境用の特別な設定があり、それが表示されていない可能性があります...「レンダリング」が機能しませんか?
私の環境は次のようになります。
environments {
development {
grails.logging.jul.usebridge = true
}
test {
grails.logging.jul.usebridge = true
}
production {
grails.logging.jul.usebridge = false
}
}
And DB config looks like this:
environments {
development {
dataSource {
dbCreate = "update" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:mysql://localhost/myapp?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8"
username = "root"
password = ""
}
hibernate {
}
}
test {
dataSource {
dbCreate =
url = "jdbc:mysql://localhost/myapp?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8"
username = "root"
password = ""
properties {
}
hibernate {
}
}
}
production {
dataSource {
dbCreate = "create-drop"
url = "jdbc:mysql://localhost/myapp?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8"
username = "root"
password = ""
}
}
}
どうすればこれを解決したり、さらにトラブルシューティングしたりできますか??