0 Replies Latest reply on Jul 16, 2009 6:20 PM by Atul Mogha

    Rich:tabPanel problems with seam

    Atul Mogha Newbie

      Hi,
      I was trying to use the rich:tabPanel's binding attribute in my code, so that I'll be able to dynamically switch the tabs in my application, but when I provided a org.richfaces.component.html.HtmlTabPanel instance for binding, I got the following error:




      javax.faces.FacesException: javax.el.ELException: /acct/index.xhtml @34,127 binding="#{configReader.tabPanel}": java.lang.IllegalArgumentException: argument type mismatch 
      at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:253) 
      at org.jboss.seam.jsf.SeamApplication.createComponent(SeamApplication.java:394) 
      at com.sun.facelets.tag.jsf.ComponentHandler.createComponent(ComponentHandler.java:224) 
      at com.sun.facelets.tag.jsf.ComponentHandler.apply(ComponentHandler.java:139) 
      at com.sun.facelets.tag.ui.DefineHandler.applyDefinition(DefineHandler.java:64) 
      at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:131) 
      at com.sun.facelets.impl.DefaultFaceletContext$TemplateManager.apply(DefaultFaceletContext.java:310) 
      at com.sun.facelets.impl.DefaultFaceletContext.includeDefinition(DefaultFaceletContext.java:280) 
      at com.sun.facelets.tag.ui.InsertHandler.apply(InsertHandler.java:68) 
      at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) 
      at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) 
      at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) 
      at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25) 
      at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) 
      at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) 
      at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) 
      at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:144) 
      at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) 
      at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) 
      at com.sun.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:25) 
      at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95) 
      at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:524) 
      at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:567) 
      at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100) 
      at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176) 
      at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109) 
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100) 
      at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) 
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) 
      at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) 
      at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) 
      at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:390) 
      at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:517) 
      at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53) 
      at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) 
      at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) 
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
      at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) 
      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:230) 
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182) 
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) 
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) 
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) 
      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) 
      at java.lang.Thread.run(Thread.java:595) 
      Caused by: javax.el.ELException: /acct/index.xhtml @34,127 binding="#{configReader.tabPanel}": java.lang.IllegalArgumentException: argument type mismatch 
      at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:101) 
      at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:250) 
      ... 68 more 
      Caused by: java.lang.IllegalArgumentException: argument type mismatch 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at javax.el.BeanELResolver.setValue(BeanELResolver.java:108) 
      at javax.el.CompositeELResolver.setValue(CompositeELResolver.java:68) 
      at com.sun.faces.el.FacesCompositeELResolver.setValue(FacesCompositeELResolver.java:100) 
      at org.jboss.el.parser.AstPropertySuffix.setValue(AstPropertySuffix.java:73) 
      at org.jboss.el.parser.AstValue.setValue(AstValue.java:84) 
      at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249) 
      at com.sun.facelets.el.TagValueExpression.setValue(TagValueExpression.java:93) 
      ... 69 more 
      





      In the rich:abPanel documentation, the attribute accepts any EL expression that evaluates to javax.faces.component.UIComponent


      but when I searched for the HtmlTabPanel hierarchy the top most class in that hierarchy is javax.faces.component.UIComponent.


      What should I do to resolve this issue. Is there anything wrong in my approach or am I missing something??



      nbelaevski  said:

      Hi,

      Probably, you have two different UITabPanel classes in two different classloaders.

      and
      ilyashaikovsky said:


      if you deploing your application as EAR - you should have impl and ui jars in webapp and api jar in EAR libraries.


      then I changed the EAR library to only have rich api jar and the webapp library to have the ui and impl jars but now I got the foloowing error after deployment:

      18:04:51,843 ERROR [[/Calonex2]] Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener 
      java.lang.RuntimeException: Could not create Component: configReader 
      at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1202) 
      at org.jboss.seam.init.Initialization.installComponents(Initialization.java:1118) 
      at org.jboss.seam.init.Initialization.init(Initialization.java:733) 
      at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) 
      at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856) 
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361) 
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) 
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) 
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296) 
      at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.apache.catalina.core.StandardContext.init(StandardContext.java:5312) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:296) 
      at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.jboss.web.tomcat.service.TomcatDeployer.performDeployInternal(TomcatDeployer.java:301) 
      at org.jboss.web.tomcat.service.TomcatDeployer.performDeploy(TomcatDeployer.java:104) 
      at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:375) 
      at org.jboss.web.WebModule.startModule(WebModule.java:83) 
      at org.jboss.web.WebModule.startService(WebModule.java:61) 
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
      at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
      at sun.reflect.GeneratedMethodAccessor1580.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
      at $Proxy0.start(Unknown Source) 
      at org.jboss.system.ServiceController.start(ServiceController.java:417) 
      at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
      at $Proxy44.start(Unknown Source) 
      at org.jboss.web.AbstractWebContainer.start(AbstractWebContainer.java:466) 
      at sun.reflect.GeneratedMethodAccessor2927.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
      at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97) 
      at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238) 
      at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:87) 
      at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) 
      at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
      at $Proxy45.start(Unknown Source) 
      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 
      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015) 
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
      at sun.reflect.GeneratedMethodAccessor20.invoke(Unknown Source) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
      at java.lang.reflect.Method.invoke(Method.java:585) 
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
      
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
      at $Proxy9.deploy(Unknown Source) 
      at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) 
      at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610) 
      
      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) 
      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) 
      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) 
      Caused by: java.lang.NoClassDefFoundError: org/richfaces/component/html/HtmlTabPanel 
      at java.lang.Class.getDeclaredMethods0(Native Method) 
      at java.lang.Class.privateGetDeclaredMethods(Class.java:2395) 
      at java.lang.Class.privateGetPublicMethods(Class.java:2519) 
      at java.lang.Class.getMethods(Class.java:1406) 
      at org.jboss.seam.Component.hasAnnotation(Component.java:1158) 
      at org.jboss.seam.Component.(Component.java:218) 
      at org.jboss.seam.Component.(Component.java:205) 
      at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1186) 
      ... 92 more 



      nbelaevski said:
      UI components should not be bound to EJB components. Use UIComponent class as field type if it's absolutely necessary.

      I am not sure how to resolve this issue. Please help me in this regard


      I have already posted this on jboss forum the link for that is My Link