Page 1 of 1

Cannot display list of custom entities in admin

Posted: Fri Apr 29, 2016 10:20 am
by a0flj0
I have followed the instructuctions from here: http://www.broadleafcommerce.com/docs/c ... m-entities

When I open the admin, I do have the new section in the outline at the left. When I click it, I can see that the URL I configured for my entity is called. But then I get a rendering error:

Code: Select all

[artifact:mvn] SEVERE: Servlet.service() for servlet [admin] in context with path [/admin] threw exception
[artifact:mvn] java.lang.RuntimeException: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Message key for message resolution must be a non-null and non-empty String (components/searchFields:7)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.filter.BroadleafAdminRequestFilter$1.execute(BroadleafAdminRequestFilter.java:76)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.filter.BroadleafAdminRequestFilter$1.execute(BroadleafAdminRequestFilter.java:68)
[artifact:mvn]    at org.broadleafcommerce.openadmin.server.service.persistence.PersistenceThreadManager.operation(PersistenceThreadManager.java:33)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.filter.BroadleafAdminRequestFilter.doFilterInternal(BroadleafAdminRequestFilter.java:68)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilterInternal(ResourceUrlEncodingFilter.java:51)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:108)
[artifact:mvn]    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
[artifact:mvn]    at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:155)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.broadleafcommerce.common.security.handler.CsrfFilter.doFilter(CsrfFilter.java:85)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.filter.AdminCsrfFilter.doFilter(AdminCsrfFilter.java:57)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.access.channel.ChannelProcessingFilter.doFilter(ChannelProcessingFilter.java:144)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn]    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:178)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:166)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
[artifact:mvn]    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
[artifact:mvn]    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
[artifact:mvn]    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:85)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
[artifact:mvn]    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
[artifact:mvn]    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
[artifact:mvn]    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
[artifact:mvn]    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
[artifact:mvn]    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
[artifact:mvn]    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
[artifact:mvn]    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
[artifact:mvn]    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
[artifact:mvn]    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
[artifact:mvn]    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
[artifact:mvn]    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
[artifact:mvn]    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[artifact:mvn]    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[artifact:mvn]    at java.lang.Thread.run(Thread.java:745)
[artifact:mvn] Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.thymeleaf.exceptions.TemplateProcessingException: Message key for message resolution must be a non-null and non-empty String (components/searchFields:7)
[artifact:mvn]    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:978)
[artifact:mvn]    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
[artifact:mvn]    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
[artifact:mvn]    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
[artifact:mvn]    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
[artifact:mvn]    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.compatibility.JSCompatibilityRequestFilter.doFilterInternal(JSCompatibilityRequestFilter.java:40)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.broadleafcommerce.common.web.util.PrecompressedArtifactFilter.doFilter(PrecompressedArtifactFilter.java:89)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
[artifact:mvn]    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
[artifact:mvn]    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
[artifact:mvn]    at org.broadleafcommerce.openadmin.web.filter.BroadleafAdminRequestFilter$1.execute(BroadleafAdminRequestFilter.java:73)
[artifact:mvn]    ... 74 more
[artifact:mvn] Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Message key for message resolution must be a non-null and non-empty String (components/searchFields:7)
[artifact:mvn]    at org.thymeleaf.standard.expression.MessageExpression.executeMessage(MessageExpression.java:234)
[artifact:mvn]    at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:62)
[artifact:mvn]    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:103)
[artifact:mvn]    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:133)
[artifact:mvn]    at org.thymeleaf.standard.expression.MessageExpression.executeMessage(MessageExpression.java:244)
[artifact:mvn]    at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:62)
[artifact:mvn]    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:103)
[artifact:mvn]    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:133)
[artifact:mvn]    at org.thymeleaf.standard.expression.Expression.execute(Expression.java:120)
[artifact:mvn]    at org.thymeleaf.standard.processor.attr.AbstractStandardSingleAttributeModifierAttrProcessor.getTargetAttributeValue(AbstractStandardSingleAttributeModifierAttrProcessor.java:67)
[artifact:mvn]    at org.thymeleaf.processor.attr.AbstractSingleAttributeModifierAttrProcessor.getModifiedAttributeValues(AbstractSingleAttributeModifierAttrProcessor.java:59)
[artifact:mvn]    at org.thymeleaf.processor.attr.AbstractAttributeModifierAttrProcessor.processAttribute(AbstractAttributeModifierAttrProcessor.java:62)
[artifact:mvn]    at org.thymeleaf.processor.attr.AbstractAttrProcessor.doProcess(AbstractAttrProcessor.java:87)
[artifact:mvn]    at org.thymeleaf.processor.AbstractProcessor.process(AbstractProcessor.java:212)
[artifact:mvn]    at org.thymeleaf.dom.Node.applyNextProcessor(Node.java:1017)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:972)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.computeNextChild(NestableNode.java:695)
[artifact:mvn]    at org.thymeleaf.dom.NestableNode.doAdditionalProcess(NestableNode.java:668)
[artifact:mvn]    at org.thymeleaf.dom.Node.processNode(Node.java:990)
[artifact:mvn]    at org.thymeleaf.dom.Document.process(Document.java:93)
[artifact:mvn]    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1155)
[artifact:mvn]    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1060)
[artifact:mvn]    at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1011)
[artifact:mvn]    at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)
[artifact:mvn]    at org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190)
[artifact:mvn]    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1244)
[artifact:mvn]    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
[artifact:mvn]    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
[artifact:mvn]    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
[artifact:mvn]    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
[artifact:mvn]    ... 91 more
[artifact:mvn]
[artifact:mvn] [ERROR] 17:52:36 TemplateEngine - [THYMELEAF][http-bio-8081-exec-2] Exception processing template "layout/fullPageLayout": Message key for message resolution must be a non-null and non-empty String (components/searchFields:7)


When going into the debugger, the expression that generates the error is this one:

Code: Select all

${headerFlash}


I have no clue what I need to do about it, or what's wrong in my code, the stack trace doesn't tell me anything (none of my classes mentioned there - it's thymeleaf turtles all the way down).

Even a pointer to where I should be digging further would be appreciated.