Guy Bashan schrieb:
>
> Hi,
>
> It seems like JSF is having some difficulties reading bean property
> which is inner class.
>
> This is the exception I get:
>
> |javax.faces.FacesException: java.lang.IllegalAccessException: Class 
> org.apache.myfaces.config.annotation.TomcatAnnotationLifecycleProvider can 
> not access a member of class 
> com.todacell.ui.view.bean.campaign.CampaignTargetingBean with modifiers 
> "private"|
> |        at 
> org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:136)|
> |        at 
> org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.createManagedBean(ManagedBeanResolver.java:196)|
> |        at 
> org.apache.myfaces.el.unified.resolver.ManagedBeanResolver.getValue(ManagedBeanResolver.java:162)|
> |        at 
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(FacesCompositeELResolver.java:46)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke(FacesCompositeELResolver.java:108)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)|
> |        at 
> org.apache.myfaces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:61)|
> |        at 
> org.apache.myfaces.custom.redirectTracker.RedirectTrackerVariableResolver.resolveVariable(RedirectTrackerVariableResolver.java:41)|
> |        at 
> org.apache.myfaces.custom.security.SecurityContextVariableResolver.resolveVariable(SecurityContextVariableResolver.java:45)|
> |        at 
> org.apache.myfaces.el.convert.VariableResolverToELResolver.getValue(VariableResolverToELResolver.java:93)|
> |        at 
> javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(FacesCompositeELResolver.java:46)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke(FacesCompositeELResolver.java:108)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)|
> |        at 
> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)|
> |        at 
> org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:45)|
> |        at org.apache.el.parser.AstValue.getValue(AstValue.java:86)|
> |        at 
> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)|
> |        at 
> org.apache.myfaces.el.convert.ValueExpressionToValueBinding.getValue(ValueExpressionToValueBinding.java:160)|
> |        at 
> javax.faces.component._ValueBindingToValueExpression$2.invoke(_ValueBindingToValueExpression.java:103)|
> |        at 
> javax.faces.component._ValueBindingToValueExpression.invoke(_ValueBindingToValueExpression.java:259)|
> |        at 
> javax.faces.component._ValueBindingToValueExpression.getValue(_ValueBindingToValueExpression.java:99)|
> |        at javax.faces.component.UIData.getValue(UIData.java:978)|
> |        at 
> org.apache.myfaces.component.html.ext.HtmlDataTableHack.createDataModel(HtmlDataTableHack.java:437)|
> |        at 
> org.apache.myfaces.component.html.ext.HtmlDataTable.createDataModel(HtmlDataTable.java:847)|
> |        at 
> org.apache.myfaces.component.html.ext.HtmlDataTableHack.getDataModel(HtmlDataTableHack.java:414)|
> |        at 
> org.apache.myfaces.component.html.ext.HtmlDataTable.getDataModel(HtmlDataTable.java:839)|
> |        at 
> org.apache.myfaces.component.html.ext.HtmlDataTableHack.getRowCount(HtmlDataTableHack.java:87)|
> |        at 
> org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:221)|
> |        at 
> org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:134)|
> |        at 
> org.apache.myfaces.renderkit.html.ext.HtmlTableRenderer.encodeChildren(HtmlTableRenderer.java:187)|
> |        at 
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:594)|
> |        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:239)|
> |        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)|
> |        at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)|
> |        at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:424)|
> |        at 
> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:380)|
> |        at 
> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)|
> |        at 
> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)|
> |        at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)|
> |        at 
> com.todacell.ui.view.filter.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:149)|
> |        at 
> com.todacell.ui.view.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:61)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)|
> |        at 
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:147)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)|
> |        at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)|
> |        at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)|
> |        at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)|
> |        at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)|
> |        at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)|
> |        at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)|
> |        at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)|
> |        at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)|
> |        at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)|
> |        at 
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)|
> |        at java.lang.Thread.run(Thread.java:619)|
> |Caused by: java.lang.IllegalAccessException: Class 
> org.apache.myfaces.config.annotation.TomcatAnnotationLifecycleProvider can 
> not access a member of class 
> com.todacell.ui.view.bean.campaign.CampaignTargetingBean with modifiers 
> "private"|
> |        at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)|
> |        at java.lang.Class.newInstance0(Class.java:349)|
> |        at java.lang.Class.newInstance(Class.java:308)|
> |        at 
> org.apache.myfaces.config.annotation.TomcatAnnotationLifecycleProvider.newInstance(TomcatAnnotationLifecycleProvider.java:45)|
> |        at 
> org.apache.myfaces.config.ManagedBeanBuilder.buildManagedBean(ManagedBeanBuilder.java:81)|
> |        ... 60 more|
>
> this is the property:
>
> private List<TargetingParam> targetingParams = new
> ArrayList<TargetingParam>();
>
> Setter and getter:
>
> public List<TargetingParam> getTargetingParams()
>
> {
>
> return targetingParams;
>
> }
>
> public void setTargetingParams(List<TargetingParam> targetingParams)
>
> {
>
> this.targetingParams = targetingParams;
>
> }
>
> Inner class declaration:
>
> public static class TargetingParam
>
> {
>
> ….
>
> }
>
Use google. I found the answer on one of the first result pages.


Regards, Simon

Reply via email to