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

JPA Java Discussion :

EntityManager null ?


Sujet :

JPA Java

  1. #1
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut EntityManager null ?
    Bonjour tout le monde,

    d'habitude, je trouve mes réponses un peu à droite et à gauche sur Internet (notamment ici ) mais je cale un peu là donc j'ai décidé de profiter de ça pour m'inscrire ici et vous exposer mon problème

    je suis entrain de mettre en place une application Java EE en utilisant des EJB.
    Je rencontre actuellement un problème lorsque j'essaye de récupérer les données de ma base de données.

    Voilà comment est constituée mon architecture :
    - Base de données Derby (connexion ok)
    - Entity Bean Livre (créer avec netbeans)
    - Session Beans for entity Class (créer avec netbeans)
    - persistence.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
      <persistence-unit name="Biblio-ejbPU" transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>jdbc/Derby</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
          <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>
    - Jsf ManagedBean
    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
     
    package web;
     
    import entity.Livre;
    import facade.LivreFacade;
    import facade.LivreFacadeLocal;
    import javax.inject.Named;
    import javax.enterprise.context.SessionScoped;
    import java.io.Serializable;
    import java.util.List;
     
    @Named(value = "livreCtrl")
    @SessionScoped
    public class LivreCtrl implements Serializable {
     
        /**
         * Creates a new instance of LivreCtrl
         */
        public LivreCtrl() {
        }
     
        private LivreFacade pDao = new LivreFacade();
        private List<Livre> livres; 
     
        public List<Livre> getLivres() {
                if(livres==null){
                        livres= pDao.findAll();
                }
                return livres;
        }
    }
    - 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
    <?xml version='1.0' encoding='UTF-8'?>
     
    <!-- =========== FULL CONFIGURATION FILE ================================== -->
     
    <faces-config version="2.0"
        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_2_0.xsd">
     
        <managed-bean>
                <managed-bean-name>livreCtrl</managed-bean-name>
                <managed-bean-class>web.LivreCtrl</managed-bean-class>
                <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
     
    </faces-config>
    - index.xhtml
    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
    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core">
        <h:head>
            <title>Test Facelets</title>
        </h:head>
        <h:body>
            <f:view>
                <h:dataTable border="0" rules="all" value="#{livreCtrl.livres}"
                        var="l">
                        <h:column>
                                <f:facet name="header">
                                        <h:outputText value="id" />
                                </f:facet>
                            <h:outputText value="#{l.id}" />
                        </h:column>
                </h:dataTable>
            </f:view>
        </h:body>
    </html>
    Lorsque je déploie mon application, la Table Livre se créer bien dans ma base de données. Ensuite, j'entre une donnée (via un Insert dans commande SQL de netbeans) et je vois bien qu'elle est insérée. Ensuite lorsque je lance mon idex.xhtml, j'obtiens l'erreur :
    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
    java.lang.NullPointerException
    	at facade.AbstractFacade.findAll(AbstractFacade.java:40)
    	at web.LivreCtrl.getLivres(LivreCtrl.java:43)
    	at web.org$jboss$weld$bean-biblio-war_war-ManagedBean-class_web$LivreCtrl_$$_WeldClientProxy.getLivres(org$jboss$weld$bean-Biblio-war_war-ManagedBean-class_web$LivreCtrl_$$_WeldClientProxy.java)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:601)
    	at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
    	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.AstValue.getValue(AstValue.java:116)
    	at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
    	at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
    	at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:55)
    	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.UIData.getValue(UIData.java:731)
    	at javax.faces.component.UIData.getDataModel(UIData.java:1798)
    	at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
    	at javax.faces.component.UIData.setRowIndex(UIData.java:473)
    	at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:81)
    	at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:820)
    	at javax.faces.component.UIData.encodeBegin(UIData.java:1118)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1754)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
    	at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1759)
    	at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:401)
    	at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
    	at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:288)
    	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
    	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
    	at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    	at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    	at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    	at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    	at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    	at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    	at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    	at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    	at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    	at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    	at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    	at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    	at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    	at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    	at java.lang.Thread.run(Thread.java:722)
    Visiblement, l'entitymanager serait null, pourquoi ?
    je débute en EJB et persistence donc il y a certainement des bêtises faites J'ai suivi quelques tutoriels trouvés sur le Web ...
    Je peux fournir toute information supplémentaire que vous pouvez juger nécessaire

    Merci par avance !

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        private LivreFacade pDao = new LivreFacade();
    quand vous créez vous-même un objet, il n'y a pas d'injection de bean dans celui-ci.

  3. #3
    Membre averti
    Inscrit en
    Février 2012
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 39
    Par défaut
    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 86
    Par défaut
    Bonjour.

    @Hole_geek : tu as trouvé une solution ? J'essaie de faire la même chose mais l'injection de l'entity manager ne fonctionne pas.

    @JeitEmgie : si ça ne marche pas comme ça, quelle est la solution ?

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

Discussions similaires

  1. Sring-MVC + JPA = EntityManager null
    Par Dragna_x dans le forum Spring Web
    Réponses: 2
    Dernier message: 25/10/2012, 11h49
  2. EJB3 EntityManager null
    Par lilmeth dans le forum Java EE
    Réponses: 1
    Dernier message: 05/01/2011, 14h34
  3. EntityManager, null pointer exception.
    Par FinalSpirit dans le forum JPA
    Réponses: 7
    Dernier message: 07/07/2009, 10h29
  4. [débutant] EntityManager : null pointer exception
    Par mateu34 dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 16/02/2009, 21h58
  5. [EJB3 Entity] EntityManager null
    Par pmartin8 dans le forum Java EE
    Réponses: 2
    Dernier message: 29/04/2007, 16h07

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