Partage
  • Partager sur Facebook
  • Partager sur Twitter

faces-config : déclaration bean

    5 mars 2024 à 14:35:27

    Bonjour.

    Dans une appli web en JEE et JSF, j'utilise 2 bean : aBean et bBean.

    Je souhaite utiliser bBean à partir de aBean.

    Le bean aBean :

    package manager;
    
    import java.io.Serializable;
    import javax.annotation.PostConstruct;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ManagedProperty;
    import javax.faces.bean.ViewScoped;
    
    @ViewScoped
    @ManagedBean(name = "aBean")
    public class ABean implements Serializable {
    
        @ManagedProperty("#{bBean}")
        private BBean bBean;
        
        private String libelle;
    
        public ABean() {
        }
    
        @PostConstruct
        public void init() {
            
            setLibelle(getbBean().getLibelle());
        }
    Le bean bBean :
    package manager;
    
    import java.io.Serializable;
    import javax.annotation.PostConstruct;
    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.ViewScoped;
    
    @ViewScoped
    @ManagedBean(name = "bBean")
    public class BBean implements Serializable {
    
        private String libelle;
        
        public BBean() {
        }
    
        @PostConstruct
        public void init() {
            
            setLibelle("Bonjour");
        }

    Le fichier faces-config.xml :

    <?xml version='1.0' encoding='UTF-8'?>
    <faces-config version="2.2"
                  xmlns="http://xmlns.jcp.org/xml/ns/javaee"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
                                      http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">   
        <managed-bean>
            <managed-bean-name>aBean</managed-bean-name>
            <managed-bean-class>manager.ABean</managed-bean-class>
            <managed-bean-scope>view</managed-bean-scope>
        </managed-bean>
        
        <managed-bean>
            <managed-bean-name>bBean</managed-bean-name>
            <managed-bean-class>manager.BBean</managed-bean-class>
            <managed-bean-scope>view</managed-bean-scope>
        </managed-bean>
    </faces-config>

    Si je déclare les 2 bean dans le fichier faces-config, j'obtiens une erreur.

    Je suppose que le fichier faces-config n'est pas correct.

    Pouvez-vous m'aider SVP.

    Merci.

    L'erreur :

    FATAL:   JSF1073 : com.sun.faces.mgbean.ManagedBeanCreationException intercepté durant le traitement de RENDER_RESPONSE 6 : UIComponent-ClientId=, Message=Erreur lors de l’injection de ressources dans le bean géré «aBean»
    FATAL:   Erreur lors de l’injection de ressources dans le bean géré «aBean»
    com.sun.faces.mgbean.ManagedBeanCreationException: Erreur lors de l’injection de ressources dans le bean géré «aBean»
    	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:227)
    	at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:103)
    	at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:409)
    	at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:269)
    	at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:257)
    	at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:117)
    	at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
    	at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
    	at com.sun.el.parser.AstIdentifier.getValue(AstIdentifier.java:116)
    	at com.sun.el.parser.AstValue.getBase(AstValue.java:151)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:200)
    	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
    	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
    	at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
    	at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
    	at javax.faces.component.UIOutput.getValue(UIOutput.java:174)
    	at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:94)
    	at org.primefaces.util.ComponentUtils.getValueToRender(ComponentUtils.java:58)
    	at org.primefaces.component.outputlabel.OutputLabelRenderer.encodeEnd(OutputLabelRenderer.java:56)
    	at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:920)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1863)
    	at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
    	at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:890)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:458)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:134)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:659)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
    	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
    	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
    	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
    	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
    	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
    	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: com.sun.faces.spi.InjectionProviderException: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting invoke lifecycle  method public void manager.ABean.init()
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:231)
    	at com.sun.faces.mgbean.BeanBuilder.invokePostConstruct(BeanBuilder.java:221)
    	... 61 more
    Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Exception attempting invoke lifecycle  method public void manager.ABean.init()
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:393)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:306)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokePostConstruct(GlassFishInjectionProvider.java:229)
    	... 62 more
    Caused by: java.security.PrivilegedActionException: java.lang.reflect.InvocationTargetException
    	at java.security.AccessController.doPrivileged(Native Method)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider.invokeLifecycleMethod(GlassFishInjectionProvider.java:376)
    	... 64 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.glassfish.faces.integration.GlassFishInjectionProvider$2.run(GlassFishInjectionProvider.java:382)
    	... 66 more
    Caused by: java.lang.NullPointerException
    	at manager.ABean.init(ABean.java:24)
    	... 71 more

    -
    Edité par DenisDuval 5 mars 2024 à 15:33:59

    • Partager sur Facebook
    • Partager sur Twitter
      8 mars 2024 à 11:05:57

      En fait j'ai omis de déclarer bBean comme propriété de aBean dans faces-config
      • Partager sur Facebook
      • Partager sur Twitter

      faces-config : déclaration bean

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      • Editeur
      • Markdown