にGrailsのGORM /ドメイン・クラスの結果を保存する私は登録ページが正常に記入されたときに、関連するアカウントの階層を作成するための責任のサービスがあります。`NullPointerException`
かかわらず、私は何をすべきかのdef userRole = Role.findByAuthority("ROLE_USER")
final account = new Account(email: command.email, password: command.password)
account.save(flush: true)
final publisher = new Publisher(name: command.name) //, account: account)
publisher.save(flush: true)
final accountRole = AccountRole.create account, userRole
、 AccountRole.create account, userRole
は、この行で失敗:私はnew AccountRole(account: account, role: userRole)
を試してみましたが、私は手動でsave
を呼び出すときに、これはあまりにも失敗し
static AccountRole create(Account account, Role role) {
def instance = new AccountRole(account: account, role: role)
instance.save() // throws NullPointerException
instance
}
。 Account
とAccountRole
は、Grails 3 Spring Securityプラグインによって生成されたクラス(わずかに微調整)です。
java.lang.reflect.InvocationTargetException: null
at grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64)
at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:53)
at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:62)
at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58)
at grails.plugin.springsecurity.web.filter.DebugFilter.invokeWithWrappedRequest(DebugFilter.groovy:102)
at grails.plugin.springsecurity.web.filter.DebugFilter.doFilter(DebugFilter.groovy:69)
at grails.plugin.springsecurity.web.UpdateRequestContextHolderExceptionTranslationFilter.doFilter(UpdateRequestContextHolderExceptionTranslationFilter.groovy:64)
at grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter(GrailsAnonymousAuthenticationFilter.groovy:53)
at grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter(MutableLogoutFilter.groovy:62)
at grails.plugin.springsecurity.web.SecurityRequestHolderFilter.doFilter(SecurityRequestHolderFilter.groovy:58)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException: null
at package.AccountRole.create(AccountRole.groovy:48)
at package.RegistrationService.$tt__handleNewRegistration(RegistrationService.groovy:25)
バージョン情報:ここでは
は失敗しAccountRole.create(...)
通話のためのスタックトレースです
| Grails Version: 3.1.5
| Groovy Version: 2.4.6
| JVM Version: 1.8.0_73
私の悲惨さから私を保存してください!私はこれで数時間を費やしました:(
この動作をサンプルアプリケーションに提供できますか?あなたのドメインクラスのものだけが正しいディレクトリにないので、実際にはドメインクラスではありません。 –
この例のPublisher部分は無関係なようです...それを取り除きたいかもしれません。私はローカル変数宣言、特に変更するもの( "保存"するときと同じように)のために "決着"を使ったこともありません。 – billjamesdev