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 :

EntityManagerFactory erreur serveur applic


Sujet :

JPA Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut EntityManagerFactory erreur serveur applic
    Bonjour,


    j'ai crée un Stateless bean, packagé dans un ear, le déploiement au sein de glassfish ne pose pas de soucis et les opérations de persistences fonctionnent à merveille en utilisant l'annotation @PersistenceContext(unitName="CaddyFoxEE-ejbPU") pour injecter les ressources à mon entity manager.

    L'étape suivante se corse par contre:

    je voudrais remplacer l'annotation par un EntityManagerFactory et récupéré ainsi un entity manager ...

    voyez plutot ...

    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="1.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_1_0.xsd">
      <persistence-unit name="CaddyFoxEE-ejbPU" transaction-type="JTA">
        <provider>oracle.toplink.essentials.PersistenceProvider</provider>
        <jta-data-source>jdbc/CaddyFoxWarehouseDS</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
          <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
        </properties>
      </persistence-unit>
    </persistence>

    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
    @Stateless
    public class CaddyfoxUserBean implements CaddyfoxUserRemote, CaddyfoxUserLocal {
     
       // @PersistenceContext(unitName="CaddyFoxEE-ejbPU")
        private EntityManager em;
     
        private final String cname = this.getClass().getName();
        private Logger logger = Logger.getLogger(Constants.LOGGER_STATELESS);
     
        public CaddyfoxUserBean() {
            EntityManagerFactory emf=null;
            try{
            emf=Persistence.createEntityManagerFactory("CaddyFoxEE-ejbPU");
            }
            catch(Exception e){
                System.out.println("---seb---erreur createEntityManagerFactory:"+e.getMessage());
            }
     
              try{
            em=emf.createEntityManager();
            }
            catch(Exception e){
                System.out.println("---seb---erreur createEntityManage:"+e.getMessage());
            }
     
        }
    public CaddyfoxUser createCaddyfoxUser(final CaddyfoxUser caddyfoxUser) {
            final String mname = "createCaddyfoxUser";
            logger.entering(cname, mname, caddyfoxUser);
     
            // On s'assure de la validitÈ des paramËtres
            if (caddyfoxUser == null)
                throw new ValidationException("CaddyfoxUser object is null");
     
            try{
            em.persist(caddyfoxUser);
          //  em.close();
            }
            catch (Exception e){
                System.out.println("---seb----em.persist probleme:"+e.getMessage());
            }
     
            logger.exiting(cname, mname, caddyfoxUser);
     
     
     
            return caddyfoxUser;
        }
    }

    malheureusement, je me ramasse misérablement avec cette 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
    61
     
     lundi 27 avril 2009 17 h 11 min 41 s Europe/Brussels 
    [#|2009-04-27T17:11:49.164+0200|INFO|sun-appserver2.1|javax.enterprise.system.tools.admin|_ThreadID=16;_ThreadName=httpWorkerThread-4848-1;/Users/seb/glassfish/domains/CaddyFoxWarehouse/generated/xml/j2ee-apps/CaddyFoxEE/CaddyFoxEEClient.jar;|ADM1040 : Emplacement du jar client :[/Users/seb/glassfish/domains/CaddyFoxWarehouse/generated/xml/j2ee-apps/CaddyFoxEE/CaddyFoxEEClient.jar]|#]
     
    [#|2009-04-27T17:11:56.519+0200|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=41;_ThreadName=p: thread-pool-1; w: 34;|
    ---seb---erreur createEntityManagerFactory:No Persistence provider for EntityManager named CaddyFoxEE-ejbPU: Provider named oracle.toplink.essentials.PersistenceProvider threw unexpected exception at create EntityManagerFactory: 
    javax.persistence.PersistenceException
    javax.persistence.PersistenceException: Exception [TOPLINK-28017] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: Attempted to predeploy PersistenceUnit [CaddyFoxEE-ejbPU] while being in the wrong state [DeployFailed].
    	at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:537)
    	at oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider.createEntityManagerFactory(EntityManagerFactoryProvider.java:195)
    	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:110)
    	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
    	at com.caddyfox.stateless.caddyfoxuser.CaddyfoxUserBean.<init>(CaddyfoxUserBean.java:37)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
    	at java.lang.Class.newInstance0(Class.java:350)
    	at java.lang.Class.newInstance(Class.java:303)
    	at com.sun.ejb.containers.StatelessSessionContainer.createStatelessEJB(StatelessSessionContainer.java:509)
    	at com.sun.ejb.containers.StatelessSessionContainer.access$100(StatelessSessionContainer.java:111)
    	at com.sun.ejb.containers.StatelessSessionContainer$SessionContextFactory.create(StatelessSessionContainer.java:772)
    	at com.sun.ejb.containers.util.pool.NonBlockingPool.getObject(NonBlockingPool.java:199)
    	at com.sun.ejb.containers.StatelessSessionContainer._getContext(StatelessSessionContainer.java:486)
    	at com.sun.ejb.containers.BaseContainer.getContext(BaseContainer.java:1700)
    	at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1229)
    	at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:202)
    	at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:77)
    	at $Proxy283.createCaddyfoxUser(Unknown Source)
    	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 com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154)
    	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687)
    	at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088)
    	at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563)
    	at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567)
    	at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)
    Caused by: Exception [TOPLINK-28017] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.EntityManagerSetupException
    Exception Description: Attempted to predeploy PersistenceUnit [CaddyFoxEE-ejbPU] while being in the wrong state [DeployFailed].
    	at oracle.toplink.essentials.exceptions.EntityManagerSetupException.cannotPredeploy(EntityManagerSetupException.java:220)
    	... 36 more
     
     
     The following providers:
    oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
    Returned null to createEntityManagerFactory.
    |#]
     
    [#|2009-04-27T17:11:56.519+0200|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=41;_ThreadName=p: thread-pool-1; w: 34;|
    ---seb---erreur createEntityManage:null|#]
     
    [#|2009-04-27T17:11:56.519+0200|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=41;_ThreadName=p: thread-pool-1; w: 34;|
    ---seb----em.persist probleme:null|#]
    Si quelqu'un pouvait m'éclairer, ce serait

    Les logs sont générés à l'appel de la méthode distante "createCaddyfoxUser".

    D'après les logs, il y a un soucis de persistence provider... puis un autre probleme, "predeploy PersistenceUnit [CaddyFoxEE-ejbPU] while being in the wrong state" ...

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    j'ai réussi à éliminer les erreurs en ajoutant les jar de toplink dans le repertoire mondomaine/lib/ext dans glassfish ....


    mais l'écriture ds la bd n'a pas l air de fonctionner ...

    la première exécution se passe bien, cependant quand je relance le test, on dirait que mon statelessbean reste dans un pool, et comme j'ai fait un close sur mon enteitymanager, je tombe sur une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     lundi 27 avril 2009 17 h 40 min 05 s Europe/Brussels 
    [#|2009-04-27T17:40:13.714+0200|INFO|sun-appserver2.1|javax.enterprise.system.stream.out|_ThreadID=23;_ThreadName=p: thread-pool-1; w: 8;|
    ---seb----em.persist probleme:Attempting to execute an operation on a closed EntityManager.|#]

Discussions similaires

  1. Erreur serveur application
    Par rednight dans le forum WebDev
    Réponses: 1
    Dernier message: 05/09/2010, 10h16
  2. Erreur déploiement application sur serveur IIS
    Par Dragna_x dans le forum Silverlight
    Réponses: 4
    Dernier message: 06/05/2010, 09h16
  3. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  4. msimn.exe Erreur d'application
    Par popy29 dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 31/12/2005, 12h26
  5. base de donnees sur serveur application sur client
    Par rabi dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/05/2004, 21h04

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