org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist

Spring JIRA | Gary Russell | 5 years ago
  1. 0

    GCIBPP uses a DirectFieldAccessor indiscriminately to get the current list of interceptors on a channel. NullChannel has no such field. Since NullChannel is omnipresent, one always gets a stack trace when using DEBUG logging with global channel interceptor(s). {code} 2011-11-09 10:17:22,721 [main] DEBUG: org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor - interceptors not supported by channel 'org.springframework.integration.channel.NullChannel@63d87b85' org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:108) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.getExistingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:140) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.addMatchingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:95) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization(GlobalChannelInterceptorBeanPostProcessor.java:86) {code} Maybe leave the debug log there but don't include the exception, unless it is not of type NRPE.

    Spring JIRA | 5 years ago | Gary Russell
    org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist
  2. 0

    GCIBPP uses a DirectFieldAccessor indiscriminately to get the current list of interceptors on a channel. NullChannel has no such field. Since NullChannel is omnipresent, one always gets a stack trace when using DEBUG logging with global channel interceptor(s). {code} 2011-11-09 10:17:22,721 [main] DEBUG: org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor - interceptors not supported by channel 'org.springframework.integration.channel.NullChannel@63d87b85' org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:108) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.getExistingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:140) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.addMatchingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:95) at org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization(GlobalChannelInterceptorBeanPostProcessor.java:86) {code} Maybe leave the debug log there but don't include the exception, unless it is not of type NRPE.

    Spring JIRA | 5 years ago | Gary Russell
    org.springframework.beans.NotReadablePropertyException: Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist
  3. 0

    When I use org.springframework.validation.Validator, the IllegalStateException is thrown. The javax.validation.Validator works correctly. Look at attached JUnit-test ( also as an maven project in attachement ). {code:title=A.java} package com.asseco.ce.valid; import javax.validation.Valid; import javax.validation.constraints.NotNull; public class A { @NotNull @Valid private B b; public B getB() { return b; } public void setB(B b) { this.b = b; } } {code} {code:title=B.java} package com.asseco.ce.valid; import org.hibernate.validator.constraints.NotBlank; public class B { @NotBlank private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } } {code} {code:title=ValidationIntegrationTest.xml} <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd"> <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/> </beans> {code} {code:title=ValidationIntegrationTest.xml} package com.asseco.ce.valid; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.validation.DirectFieldBindingResult; import org.springframework.validation.Errors; import org.springframework.validation.Validator; import com.asseco.ce.valid.A; import com.asseco.ce.valid.B; import static org.junit.Assert.*; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "ValidationIntegrationTest.xml" } ) public class ValidationIntegrationTest { @Autowired private Validator springValidator; @Autowired private javax.validation.Validator jsr303Validator; private A a; @Before public void before() { a = new A(); a.setB(new B()); } @Test public void jsr303() { assertEquals(1, jsr303Validator.validate(a).size()); } @Test public void spring() { Errors errors = new DirectFieldBindingResult(a, "A"); springValidator.validate(a, errors); assertEquals(1, errors.getAllErrors().size()); } } {code} {code:title=Exception} java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:152) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:89) at com.asseco.ce.valid.ValidationIntegrationTest.spring(ValidationIntegrationTest.java:42) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:83) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:231) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:88) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:71) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:174) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'b.value' of bean class [com.asseco.ce.valid.A]: Field 'b.value' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:106) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getRawFieldValue(AbstractBindingResult.java:275) at org.springframework.validation.beanvalidation.SpringValidatorAdapter.processConstraintViolations(SpringValidatorAdapter.java:137) ... 31 more {code}

    Spring JIRA | 4 years ago | Vladimir Kralik
    java.lang.IllegalStateException: JSR-303 validated property 'b.value' does not have a corresponding accessor for Spring data binding - check your DataBinder's configuration (bean property versus direct field access)
  4. Speed up your debug routine!

    Automated exception search integrated into your IDE

  5. 0

    Currently initDirectFieldAccess does not work with array, List and Map. Given following command object class {code} package be.vdab.web; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class CommandObject { private String[] array = new String[1]; private List<String> list = Arrays.asList(""); private Map<Integer, String> map = new HashMap<>(); public String[] getArray() { return array; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public void setArray(String[] array) { this.array = array; } public Map<Integer, String> getMap() { return map; } public void setMap(Map<Integer, String> map) { this.map = map; } } {code} , the following controller: {code} package be.vdab.web; import java.util.Arrays; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/") public class IndexController { @RequestMapping(method = RequestMethod.GET) public ModelAndView get() { return new ModelAndView("/WEB-INF/JSP/index.jsp", "commandObject", new CommandObject()); } @RequestMapping(method = RequestMethod.POST) public String post(CommandObject commandObject) { System.out.println(Arrays.toString(commandObject.getArray())); System.out.println(commandObject.getList()); System.out.println(commandObject.getMap()); return "redirect:"; } @InitBinder("commandObject") void initBinder(WebDataBinder binder) { binder.initDirectFieldAccess(); } } {code} and the following JSP {code} <%@page contentType='text/html' pageEncoding='UTF-8' session='false'%> <%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%> <!doctype html> <html lang='nl'> <head> <title>initDirectFieldAccess</title> </head> <body> <form:form action='${url}' commandName='commandObject'> <form:input path='array[0]'/> <form:input path='list[0]'/> <form:input path='map[1]'/> <input type='submit'> </form:form> </body> </html> {code} you get following stacktrace: {code} SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/initdirectfieldaccess] threw exception [org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist] with root cause org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:116) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:229) at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116) at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142) at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:194) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:151) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspService(index_jsp.java:108) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) {code} When you put the line binder.initDirectFieldAccess(); in comment in the class IndexController, the program works.

    Spring JIRA | 2 years ago | Hans Desmet
    org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist
  6. 0

    Currently initDirectFieldAccess does not work with array, List and Map. Given following command object class {code} package be.vdab.web; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; public class CommandObject { private String[] array = new String[1]; private List<String> list = Arrays.asList(""); private Map<Integer, String> map = new HashMap<>(); public String[] getArray() { return array; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public void setArray(String[] array) { this.array = array; } public Map<Integer, String> getMap() { return map; } public void setMap(Map<Integer, String> map) { this.map = map; } } {code} , the following controller: {code} package be.vdab.web; import java.util.Arrays; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping("/") public class IndexController { @RequestMapping(method = RequestMethod.GET) public ModelAndView get() { return new ModelAndView("/WEB-INF/JSP/index.jsp", "commandObject", new CommandObject()); } @RequestMapping(method = RequestMethod.POST) public String post(CommandObject commandObject) { System.out.println(Arrays.toString(commandObject.getArray())); System.out.println(commandObject.getList()); System.out.println(commandObject.getMap()); return "redirect:"; } @InitBinder("commandObject") void initBinder(WebDataBinder binder) { binder.initDirectFieldAccess(); } } {code} and the following JSP {code} <%@page contentType='text/html' pageEncoding='UTF-8' session='false'%> <%@taglib prefix='form' uri='http://www.springframework.org/tags/form'%> <!doctype html> <html lang='nl'> <head> <title>initDirectFieldAccess</title> </head> <body> <form:form action='${url}' commandName='commandObject'> <form:input path='array[0]'/> <form:input path='list[0]'/> <form:input path='map[1]'/> <input type='submit'> </form:form> </body> </html> {code} you get following stacktrace: {code} SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/initdirectfieldaccess] threw exception [org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist] with root cause org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist at org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:116) at org.springframework.validation.AbstractPropertyBindingResult.getActualFieldValue(AbstractPropertyBindingResult.java:99) at org.springframework.validation.AbstractBindingResult.getFieldValue(AbstractBindingResult.java:229) at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:120) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:168) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:188) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getName(AbstractDataBoundFormElementTag.java:154) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.autogenerateId(AbstractDataBoundFormElementTag.java:141) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.resolveId(AbstractDataBoundFormElementTag.java:132) at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.writeDefaultAttributes(AbstractDataBoundFormElementTag.java:116) at org.springframework.web.servlet.tags.form.AbstractHtmlElementTag.writeDefaultAttributes(AbstractHtmlElementTag.java:422) at org.springframework.web.servlet.tags.form.InputTag.writeTagContent(InputTag.java:142) at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:84) at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:80) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005finput_005f0(index_jsp.java:194) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspx_meth_form_005fform_005f0(index_jsp.java:151) at org.apache.jsp.WEB_002dINF.JSP.index_jsp._jspService(index_jsp.java:108) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:431) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318) at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:168) at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) at javax.servlet.http.HttpServlet.service(HttpServlet.java:618) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) at javax.servlet.http.HttpServlet.service(HttpServlet.java:725) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659) at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Unknown Source) {code} When you put the line binder.initDirectFieldAccess(); in comment in the class IndexController, the program works.

    Spring JIRA | 2 years ago | Hans Desmet
    org.springframework.beans.NotReadablePropertyException: Invalid property 'array[0]' of bean class [be.vdab.web.CommandObject]: Field 'array[0]' does not exist

    Not finding the right solution?
    Take a tour to get the most out of Samebug.

    Tired of useless tips?

    Automated exception search integrated into your IDE

    Root Cause Analysis

    1. org.springframework.beans.NotReadablePropertyException

      Invalid property 'interceptors' of bean class [org.springframework.integration.channel.NullChannel]: Field 'interceptors' does not exist

      at org.springframework.beans.DirectFieldAccessor.getPropertyValue()
    2. Spring Beans
      DirectFieldAccessor.getPropertyValue
      1. org.springframework.beans.DirectFieldAccessor.getPropertyValue(DirectFieldAccessor.java:108)
      1 frame
    3. Spring Integration Core
      GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization
      1. org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.getExistingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:140)
      2. org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.addMatchingInterceptors(GlobalChannelInterceptorBeanPostProcessor.java:95)
      3. org.springframework.integration.channel.interceptor.GlobalChannelInterceptorBeanPostProcessor.postProcessAfterInitialization(GlobalChannelInterceptorBeanPostProcessor.java:86)
      3 frames