IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Erreur au commit sur une BDD ( IceFaces,Tomcat6, Spring, JPA/Hibernate ) [Data]


Sujet :

Spring Java

  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Erreur au commit sur une BDD ( IceFaces,Tomcat6, Spring, JPA/Hibernate )
    Bonjour, j'obtiens l'erreur ci-dessous lorsque je souhaite faire un commit d'une modif sur une BdD gérée sous Spring avec JPA/Hibernate. La lecture se passe correctement l'application est Ok mais un commit me génère l'erreur. Débutant dans le système la lecture du log est assez complexe, je vois qu'il y a lyfeCycle .... y-a-t-il un rapport ? Ou peut être que ma persistence n'est pas bien configurée mais que ça passe qd même tant qu'on est en lecture ?!?! Est ce que vous avez une idée ? Est ce que des tests particuliers seraient bons à faire ici ? Est ce que cela vient d'une mauvaise mise en place de la gestion des transactions par Spring car je désire être en managé.

    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    11 mai 2009 09:42:19 com.sun.faces.lifecycle.InvokeApplicationPhase execute
    ATTENTION: java.lang.NullPointerException
    javax.faces.el.EvaluationException: java.lang.NullPointerException
    	at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
    	at javax.faces.component.UICommand.broadcast(UICommand.java:380)
    	at com.icesoft.faces.component.panelseries.UISeries$RowEvent.broadcast(UISeries.java:559)
    	at com.icesoft.faces.component.panelseries.UISeries.broadcast(UISeries.java:238)
    	at javax.faces.component.UIData.broadcast(UIData.java:938)
    	at com.icesoft.faces.component.panelseries.UISeries.broadcast(UISeries.java:233)
    	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475)
    	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756)
    	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    	at com.icesoft.faces.webapp.http.core.JsfLifecycleExecutor.apply(JsfLifecycleExecutor.java:17)
    	at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(ReceiveSendUpdates.java:94)
    	at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(ReceiveSendUpdates.java:54)
    	at com.icesoft.faces.webapp.http.core.RequestVerifier.service(RequestVerifier.java:26)
    	at com.icesoft.faces.webapp.http.common.standard.PathDispatcherServer.service(PathDispatcherServer.java:24)
    	at com.icesoft.faces.webapp.http.servlet.MainSessionBoundServlet.service(MainSessionBoundServlet.java:160)
    	at com.icesoft.faces.webapp.http.servlet.SessionDispatcher$1.service(SessionDispatcher.java:38)
    	at com.icesoft.faces.webapp.http.servlet.ThreadBlockingAdaptingServlet.service(ThreadBlockingAdaptingServlet.java:19)
    	at com.icesoft.faces.webapp.http.servlet.EnvironmentAdaptingServlet.service(EnvironmentAdaptingServlet.java:63)
    	at com.icesoft.faces.webapp.http.servlet.SessionDispatcher.service(SessionDispatcher.java:55)
    	at com.icesoft.faces.webapp.http.servlet.SessionVerifier.service(SessionVerifier.java:19)
    	at com.icesoft.faces.webapp.http.servlet.PathDispatcher.service(PathDispatcher.java:23)
    	at com.icesoft.faces.webapp.http.servlet.MainServlet.service(MainServlet.java:91)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at com.icesoft.faces.webapp.xmlhttp.BlockingServlet.service(BlockingServlet.java:56)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    	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:191)
    	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:286)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    	at java.lang.Thread.run(Thread.java:619)
    Caused by: java.lang.NullPointerException
    	at aa.PersonneBean.commit(PersonneBean.java:90)
    	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:597)
    	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
    	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
    	at com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
    	... 37 more
    11 mai 2009 09:42:19 com.sun.faces.lifecycle.Phase doPhase
    GRAVE: JSF1054: (Phase ID: INVOKE_APPLICATION 5, View ID: /Page1.jsp) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@e776f7]

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    ben visiblement la cause de l'erreur se situe ici :
    aa.PersonneBean.commit(PersonneBean.java:90)

    Tu as une NullPointerException
    ce qui veut dire que ton objet aa.PersonneBean est null et n'a pas du etre instancié correctement!

  3. #3
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut un objet non référencié ?
    A priori, il semblerait que le pb vienne de la référence sur l'objet service injecté par IOC JSF. En effet, j'ai retiré le code du commit pour ne faire afficher QUE un string "test ok" et le message d'erreur persiste.

    Dans mon faces-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    (......)
    <managed-bean>
            <managed-bean-name>PersonneBean</managed-bean-name>
            <managed-bean-class>aa.PersonneBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>service</property-name>
                <value>#{service}</value>
            </managed-property>
        </managed-bean>
    (......)
    Dans mon managed bean
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    public void commit(ActionEvent e) throws IOException{
            String strTest="";
            FileHandler fh = new FileHandler("log.out");
            // Send logger output to FileHandler.
            logger.addHandler(fh);
            // Log all
            logger.setLevel(Level.FINE);
     
            //Personne persResult=null;
             String strMessage = "DEBUT DEBUG TEST";
             logger.log(Level.FINE, strMessage);
     
     
     
            personne.setPrenom(tempPrenom);
            personne.setNom(tempNom);
     
            strMessage = "Prénom : "+personne.getPrenom();
            logger.log(Level.FINE, strMessage);
            strMessage = "nom : "+personne.getNom();
            logger.log(Level.FINE, strMessage);
     
            strTest=service.getTest();
            //Personne persResult = service.updateOne(personne);
     
             logger.log(Level.FINE, strTest);
             expanded = !expanded;
        }
    L'implémentation de service est réalisée via l'interface IService
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public String getTest();
    implémenté dans Service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public String getTest(){
            return "test service ok";
        }
    Les injections sont vérifiées correctes donc rien de ce côté-là, le scope session de PersonneBean .... ben pour le moment j'ai mis ça mais je devrais probablement passer en scope Request ... pas d'impact sur mon Pb actuel

    Donc même en ne voulant afficher dans le log QUE le résultat de getTest() j'ai le NullPointer exception ..... Qqn a une idée du pourquoi ?!?!

  4. #4
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut
    merci de me répondre Willoi

    Si mon PersonneBean est null alors je ne devrais pas avoir mon nom et mon prenom d'inscrit dans le log ?!?! non ? Parce que ici j'ai bien ces infos de récupérées ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    INFO: Adapting to Send Updated Views environment.
    11 mai 2009 11:16:02 aa.PersonneBean commit
    FIN: DEBUT DEBUG TEST
    11 mai 2009 11:16:02 aa.PersonneBean commit
    FIN: Prnom : bfsfs
    11 mai 2009 11:16:02 aa.PersonneBean commit
    FIN: nom : p6
    11 mai 2009 11:16:02 com.sun.faces.lifecycle.InvokeApplicationPhase execute
    ATTENTION: java.lang.NullPointerException
    javax.faces.el.EvaluationException: java.lang.NullPointerException

  5. #5
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    La pile concernant le lifeCycle est présente parce que c'est une action de JSF qui a invoqué le code ayant généré l'exception, en fait ça commence à devenir intéressant à partir de la 2e pile :

    Caused by: java.lang.NullPointerException
    at aa.PersonneBean.commit(PersonneBean.java:90)


    Dans personneBean ligne 90 c'est là que semble se situer le problème, c'est impossible d'avoir une idée plus précise sans que tu fasses un pas à pas en débuggage.

    EDIT: l'exception a été levée dans une méthode (commit) de PersonneBean donc je crois pas que c'est PersonneBean qui était null.

  6. #6
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut La ligne 119
    Bonjour skip et Willoi

    La ligne 119 est celle qui appelle la fonction ( dans mon cas ici juste une fonction de test qui doit renvoyer un string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strTest=service.getTest();
    Ainsi, à priori, c'est bien service qui n'existe pas .... alors que je l'injecte ( voir mon post 2 ) .... Je dois loupé la comprenette ?!?!

  7. #7
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    En effet oui, cela se passe au niveau de l'injection de ton service.
    Fais voir ta config Spring pour l'injection !

  8. #8
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut les fichiers de config
    Fichier Spring : applicationContext.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:aop="http://www.springframework.org/schema/aop"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
     
     
     
     
        <bean id="dataSource"
              class="org.springframework.jdbc.datasource.DriverManagerDataSource"
              p:driverClassName="com.mysql.jdbc.Driver"
              p:url="jdbc:mysql://localhost:3306/jpa"
              p:username="root"
              p:password=""/>
     
        <!-- ADD PERSISTENCE SUPPORT HERE (jpa, hibernate, etc) -->
     
        <!-- couches applicatives -->
     
        <bean id="dao" class="dao.Dao" />
     
        <bean id="service" class="service.Service">
            <property name="dao" ref="dao" />
        </bean>
     
    	<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    		<property name="dataSource" ref="dataSource" />
    		<property name="jpaVendorAdapter">
    			<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    				<property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" />
    				<property name="generateDdl" value="true" />
    			</bean>
    		</property>
    		<property name="loadTimeWeaver">
    			<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
    		</property>
    	</bean>
     
    	<!-- le gestionnaire de transactions -->
     
     
    	<tx:annotation-driven transaction-manager="txManager" />
    	<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    		<property name="entityManagerFactory" ref="entityManagerFactory" />
    	</bean>
     
    	<!-- traduction des exceptions -->
     
        <bean class="org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor" />
     
    	<!-- persistence -->
     
        <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
     
    </beans>

    fichier faces-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
    <?xml version='1.0' encoding='UTF-8'?>
     
    <faces-config version="1.2" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
        <application>
            <view-handler>
                com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl
            </view-handler>
            <variable-resolver>org.springframework.web.jsf.DelegatingVariableResolver</variable-resolver>
        </application>
     
        <!-- pas utile ici je le garde juste pour mémoire ************* NON UTILISE *********** -->
        <managed-bean>
            <managed-bean-name>testy</managed-bean-name>
            <managed-bean-class>aa.testy</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>service</property-name>
                <value>#{service}</value>
            </managed-property>
        </managed-bean>
        <managed-bean>
            <managed-bean-name>ApplicationBean1</managed-bean-name>
            <managed-bean-class>aa.ApplicationBean1</managed-bean-class>
            <managed-bean-scope>application</managed-bean-scope>
        </managed-bean>
     
        <!-- pas utile ici je le garde juste pour mémoire ************* NON UTILISE *********** -->
        <managed-bean>
            <managed-bean-name>SessionBean1</managed-bean-name>
            <managed-bean-class>aa.SessionBean1</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>service</property-name>
                <value>#{service}</value>
            </managed-property>
        </managed-bean>
        <managed-bean>
            <managed-bean-name>RequestBean1</managed-bean-name>
            <managed-bean-class>aa.RequestBean1</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
     
        <managed-bean>
            <managed-bean-name>renderManager</managed-bean-name>
            <managed-bean-class>com.icesoft.faces.async.render.RenderManager</managed-bean-class>
            <managed-bean-scope>application</managed-bean-scope>
        </managed-bean>
     
        <managed-bean>
            <managed-bean-name>SessionBean</managed-bean-name>
            <managed-bean-class>aa.SessionBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>service</property-name>
                <value>#{service}</value>
            </managed-property>
            <managed-property>
                <property-name>renderManager</property-name>
                <value>#{renderManager}</value>
            </managed-property>
        </managed-bean>
        <managed-bean>
            <managed-bean-name>PersonneBean</managed-bean-name>
            <managed-bean-class>aa.PersonneBean</managed-bean-class>
            <managed-bean-scope>session</managed-bean-scope>
            <managed-property>
                <property-name>service</property-name>
                <value>#{service}</value>
            </managed-property>
        </managed-bean>
     
    </faces-config>

    merci

  9. #9
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut service serait détruit ?
    Est-il possible que mon objet service puisse être détruit par un processus lié aux cycles de vie de JSF ? bien que créé par Spring ? Euh , je pense que c'est un peu une question qui va vous faire sourire mais bon .... faut bien que je la pose pour ne plus être gêné par ce truc ! Lol

  10. #10
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Essaie d'obtenir une référence sur ton bean en utilisant cette méthode plutôt que l'injection juste pour savoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    /**
         * Looks for a specific bean
         * @param beanName the name of the bean to look for
         * @return the bean (or null)
         */
        public static Object findBean(String beanName)
        {
            FacesContext context = FacesContext.getCurrentInstance();
     
            ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
            ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
     
            return appContext.getBean(beanName);
        }

  11. #11
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut ?!
    Ça marche avec ta méthode !
    Oulla, mais alors là, il faut vraiment que je comprenne pourquoi l'injection ne fonctionne pas....
    Y a t-il emmêlage dans les références ? Qqche détruit cette référence ?

    Quel est l'impact de cette méthode sur :
    * Le fait que je veuille faire du JPA managé pour éviter de me soucier des EntityManagerFactory, etc.
    * Mon obligation d'utiliser ensuite du Push Server pour rafraichir un autre client affichant cette même page .... mais avec une info venant d'être modifiée par quelqu'un d'autre ....



    Je fais les tests en ce moment-même

  12. #12
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Tu peux déjà créer une méthode @PostConstruct dans ton managed bean, y mettre un point d'arrêt et déjà vérifier si l'injection a été faite à la construction de l'objet.
    Pour savoir si c'est plus tard qu'elle se perd.

    Moi je n'utilise que très peu l'injection.
    J'ai simplement une classe de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    /**
     * A simple helper class for retrieving references to spring managed beans.
     * @author Stef
     */
    public class ServiceFinder
    {
     
     
        /**
         * Looks for a specific bean
         * @param beanName the name of the bean to look for
         * @return the bean (or null)
         */
        public static Object findBean(String beanName)
        {
            FacesContext context = FacesContext.getCurrentInstance();
     
            ServletContext servletContext = (ServletContext) context.getExternalContext().getContext();
            ApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
     
            return appContext.getBean(beanName);
        }
     
     
        /**
         * @return the campaign service interface
         */
        public static CampaignsManager getCampaignsManager()
        {
            return (CampaignsManager) findBean("CampaignsManager");
        }
     
        /**
         * @return the websites service interface
         */
        public static WebsitesManager getWebsitesManager()
        {
            return (WebsitesManager) findBean("WebsitesManager");
        }
     
        /**
         * @return the items service interface
         */
        public static ItemsManager getItemsManager()
        {
            return (ItemsManager) findBean("ItemsManager");
        }
     
        ....
     
    }

  13. #13
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Merci à skip et willoi

    Ok Skip, je vais checker cette injection avec ton conseil.
    Merci pour la coop et la résolution, encore une fois, du problème !
    Après test, il n'y a aucun impact sur le jpa managé et les méthodes de l'API Renderer donc carton plein !!

    A bientôt

    Yann

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de compilation sur une librairie en mode debug
    Par bakaneko dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/05/2006, 17h32
  2. Erreur de syntaxe sur une requête paramétrée
    Par deglingo37 dans le forum Access
    Réponses: 5
    Dernier message: 16/05/2006, 23h21
  3. erreur PLS-00103 sur une fonction
    Par atruong dans le forum Oracle
    Réponses: 2
    Dernier message: 28/04/2006, 14h49
  4. Erreur de segmentation sur une chaine en récursif...
    Par laurent_ifips dans le forum C
    Réponses: 12
    Dernier message: 13/12/2005, 17h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo