Bazı özel mareşaller oluşturdum ve ileti hizmetlerine erişmeye çalışıyorum. Takip koduna sahibim.src/groovy içinde hizmete erişme
resources.groovy
customObjectMarshallers(CustomObjectMarshallers){
marshallers = [
new PersonMarshaller(),
new DepartmentMarshaller(),
new ErrorsMarshaller()
]
}
CustomObjectMarshallers
class CustomObjectMarshallers {
List marshallers = []
def register(){
marshallers.each {
it.register()
}
}
}
ErrorsMarshaller
class ErrorsMarshaller {
@Autowired
def MessageSource messageSource
void register(){
JSON.registerObjectMarshaller(FieldError){ FieldError fieldError ->
def pMap = [:]
fieldError.properties.each { prop, val ->
println 'prop ' + prop
if(prop == 'rejected_value' || prop == 'arguments' || prop == 'class' || prop == 'codes' || prop == 'code' || prop == 'bindingFailure') {
return
} else if(prop == 'defaultMessage') {
pMap[prop] = messageSource.getMessage(val, fieldError, Locale.US)
} else {
pMap[prop] = MarshallerUtils.cleanPropertyValue(val)
}
}
return pMap
}
}
}
ben ge değilim Aşağıdaki istisnayı tting
Boş nesne üzerinde getMessage() yöntemi çağrlanılamıyor. StackTrace aşağıdaki gibidir: java.lang.NullPointerException: org.hri.leaverequest.marshaller at : org.hri.leaverequest.marshaller.ErrorsMarshaller $ _register_closure1_closure2.doCall (26 ErrorsMarshaller.groovy) null nesne üzerine yöntem getMessage() çağırmak olamaz Grails.converters.JSON.convertAnother (JSON.java:162) at grails.converters adresinde bulunan grails.converters.JSON.value (JSON.java:202) adresinde yer almaktadır. .JSON.value (JSON.java:202) grails.converters.JSON.render adresinden (JSON.java:134) adresinden org.hri.leaverequest.CalendarController.processRequest (TakvimController.groovy: 154) grails.plugin adresinde .cache.web.filter.PageFragmentCachingFilter.doFilter (PageFragmentCachingFilter. Java: grails.plugin.springsecurity.web.filter.GrailsAnonymousAuthenticationFilter.doFilter (GrailsAnonymousAuthenticationFilter.java:53) de grails.plugin.cache.web.filter.AbstractFilter.doFilter (AbstractFilter.java:63) 198) de grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter.doFilter (RequestHolderAuthenticationFilter.java:49) grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter.doFilter (MutableLogoutFilter.java:82) java.util adresinde. java.lang.Thread.run de java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) de concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) (Thread.java:744)
sürümü nedir? Bu paketlerin taranmasını yapılandırdın mı? –
@JoshuaMoore sürüm 2.4, bu paketlerin taranmasını yapılandırmak için ne anlama geldiğini bilmiyorum. –