1

現在、grails セキュリティ プラグインを使用してアプリケーションを からgrails 2.4.4に移行しています。grails 3.1.5

私は ajax 呼び出しを行うために grails ajax リクエスト プラグインを使用していますが、ajax を呼び出した後にこのエラーが発生します。

API呼び出しから取得したPOGOオブジェクトではなく、POJOのArrayListを返しています

state/stateforcountry - parameters:
countryName: Ghana
Stacktrace follows:
java.lang.reflect.InvocationTargetException: null
        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 grails.converters.JSON.value(JSON.java:180)
        at grails.converters.JSON.convertAnother(JSON.java:144)
        at grails.converters.JSON.value(JSON.java:184)
        at grails.converters.JSON.render(JSON.java:119)
        at grails.converters.JSON.render(JSON.java:132)
        at grails.artefact.controller.support.ResponseRenderer$Trait$Helper.render(ResponseRenderer.groovy:191)
        at smartinsure.admin.StateController$_stateForCountry_closure1$_closure2.doCall(StateController.groovy:29)
        at grails.artefact.Controller$Trait$Helper.withFormat(Controller.groovy:92)
        at smartinsure.admin.StateController.stateForCountry(StateController.groovy:28)
        ... 6 common frames omitted

誰でも助けてもらえますか?

4

1 に答える 1

1

groovy.json パッケージの別の groovy 変換 API を使用して、最終的に解決しました

def getUsers(){
   def users = userService.getAllUsers();
   render JsonOutput.toJson(users);
}

これとは対照的にrender users as JSON。JsonOutput はgroovy.jsonパッケージに含まれているか、それよりも優れています

withFormat {
      html { render view:"edit", model:users}
      json { render JsonOutput.toJson(users)}
      xml { render users as XML}
}
于 2016-07-16T11:27:24.597 に答える