2016-05-09 2 views
1

В настоящее время я переношу свое приложение с grails 2.4.4 на номер grails 3.1.5 с плагином безопасности Grails.grails3 Ajax Request Breaking after render as JSON

Я использую grails ajax request plugin, чтобы совершать вызовы ajax, но получая эту ошибку после вызова ajax.

Я возвращаюсь к ArrayList из POJO, а не объекты POGO получили от вызова API

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 

Может кто-нибудь помочь? Из

ответ

1

я, наконец, решил ее с помощью другого заводной API преобразования из groovy.json пакета

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} 
}