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

Glassfish et Payara Java Discussion :

Soucis de configuration pour utiliser les EJB3


Sujet :

Glassfish et Payara Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut Soucis de configuration pour utiliser les EJB3
    Bonjour,

    Je me lance actuellement dans Java EE5 pour un projet d'études, et j'ai quelques difficultés à intégrer certaines choses.

    Tout d'abord, je travaille sous eclipse ( desfois que les projets générés contiennent des noms de fichier de config spécifiques ).

    J'aimerais utiliser les EJB3 session. Seulement j'ai du mal à trouver des ressources sur le net qui expliquent clairement comment configurer ceci. J'ai trouvé pour un serveur d'application JBoss, dans un fichier jboss-config.xml.

    Je ne trouve pas l'équivalent glassFish ( j'utilise la version 2.1 ). J'imagine que des personnes sur le serveur doivent utiliser les EJB3 avec glassFish, donc si quelqu'un savait m'aiguiller.

    Par ailleurs, à quoi sert le fichier sun-web.xml ?

    Voilà pour un premier post, bonne journée à tous.

  2. #2
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Le plugin GlassFish pour Eclipse est décrit ici : https://glassfishplugins.dev.java.net/eclipse34/ (accessible directement depuis Eclipse).

    sun-web.xml est documenté ici: http://docs.sun.com/app/docs/doc/819-3660/beaql. Le plugin ci-dessus s'occupe de le tenir à jour. Il s'agit de la configuration des applications web, pas des EJB.

    Un EJB 3 session n'a pas vraiment besoin d'être configuré. Les descripteurs de déploiement XML sont facultatifs. Ceci suffit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    @stateless
    public class MonEJB {
       public void maMethode() {
          ...
       }
    }

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Je vais regarder tes sources, mais JNDI me dit gentillement qu'il y a un problème de noms lorsque je lance l'application. Et ça intervient à l'injection de référence. De plus, mon EntityManager vaut toujours null, bien que j'ai précisé l'annotation : @PersistenceContext(unitName="mon-nom").

  4. #4
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Ou déclares-tu ton EM? Dans l'EJB session?
    L'injection ne fonctionne que dans des objets "managés", pas deans des POJO.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Oui, je déclares mon EM dans mon EJB session, comme je le vois un peu partout. Qu'appelle ton un managed bean ? Qu'est ce qui le différencie d'un pojo ?

    Visiblement il y a une tentative d'injection de référence sur mon EJB session, mais qui échoue, une NameNotFoundException est lancée. C'est une simple application web, j'utilise donc une interface locale.

  6. #6
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Un objet managé est un objet dont le cycle de vie est géré par le conteneur: EJB, Servlet, JSF managed bean. Un POJO est créé par un "new".

    Je pense qu'il faut que tu partages du code pour comprendre quel est le problème.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Alors,

    tout d'abord, ma servlet qui appelle mon 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
    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
     
    package web;
     
    import java.io.IOException;
     
    import javax.ejb.EJB;
    import javax.naming.InitialContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import dao.impl.VoitureDaoLocal;
    import entity.Voiture;
     
    /**
     * Servlet implementation class MainServ
     */
    public class MainServ extends HttpServlet {
     
    	private static final long serialVersionUID = 1L;
     
    	@EJB
    	private VoitureDaoLocal dao;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public MainServ() {
            super();
     
            // TODO Auto-generated constructor stub
        }
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.GenericServlet#init()
    	 */
    	@Override
    	public void init() throws ServletException {
    		// TODO Auto-generated method stub
    		super.init();
    	}
     
    	/**
             * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
             */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		this.doPost(request, response);
    	}
     
    	/**
             * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
             */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		this.dao.createVoiture(new Voiture(0,"renault"));
    	}
     
    }
    Ensuite, mon bean session :

    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
     
    package dao.impl;
     
    import java.io.Serializable;
    import java.util.List;
     
    import javax.ejb.Stateless;
    import javax.persistence.EntityManager;
    import javax.persistence.PersistenceContext;
     
    import dao.IVoitureDaoLocal;
    import entity.Voiture;
     
    @SuppressWarnings("serial")
    @Stateless(mappedName="dao/impl/VoitureDaoLocal")
    public class VoitureDaoLocal implements IVoitureDaoLocal, Serializable {
     
    	@PersistenceContext(unitName="jpa")
    	private EntityManager em;
     
    	public VoitureDaoLocal(){
    		//this.em = Persistence.createEntityManagerFactory("jpa").createEntityManager();
    	}
     
    	public Voiture createVoiture(Voiture v) {
    		this.em.persist(v);
    		return v;
    	}
     
    	@SuppressWarnings("unchecked")
    	public List<Voiture> getAllVoiture() {
    		return this.em.createQuery("select v from Voiture v").getResultList();
    	}
     
    }
    L'interface Locale du 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
     
    package dao;
     
    import java.util.List;
     
    import javax.ejb.Local;
     
    import entity.Voiture;
     
    @Local
    public interface IVoitureDaoLocal {
     
    	public Voiture createVoiture(Voiture v);
    	public List<Voiture> getAllVoiture();
     
    }
    Et le Bean Entity Voiture :

    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
     
    package entity;
     
    import java.io.Serializable;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
     
     
    @SuppressWarnings("serial")
    @Entity
    @Table(name="voiture")
    public class Voiture implements Serializable{
     
    	@Id
    	@Column(name="id", nullable=false)
    	@GeneratedValue(strategy = GenerationType.AUTO)
    	private int id;
     
    	@Column(name="marque", nullable=false)
    	private String marque;
     
    	public Voiture(){
    		super();
    	}
     
    	public Voiture(int id, String marque){
    		super();
     
    		this.setId(id);
    		this.setMarque(marque);
    	}
     
    	/**
             * @return the id
             */
    	public int getId() {
    		return id;
    	}
     
    	/**
             * @param id the id to set
             */
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	/**
             * @return the marque
             */
    	public String getMarque() {
    		return marque;
    	}
     
    	/**
             * @param marque the marque to set
             */
    	public void setMarque(String marque) {
    		this.marque = marque;
    	}
     
    }
    Le persistence.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
     
    <?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="jpa" transaction-type="RESOURCE_LOCAL">
    		<provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
    		<jta-data-source>jdbc/dbjpa</jta-data-source>
    		<properties>
    			<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
    		</properties>
    	</persistence-unit>
    </persistence>
    J'utilise Toplink, et j'ai bien créé une source de donnée et un pool de connexion, d'ailleur ma table voiture existe dans la base de donnée, donc le drop and create tables fonctionne correctement. L'idée pour l'instant, était simplement de générer une nouvelle entrée dans la table ( une table voiture avec un id et une marque c'est pas cohérent on est bien d'accord, le but étant juste de bien comprendre les rouages de JPA et de l'injection de référence ).

  8. #8
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Essaye avec transaction-type="JTA".

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    J'ai déjà essayé, ça ne change rien.

  10. #10
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    qq chose dans le log (domains/domain1/logs/server.log) ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Oui, voici le résultat :

    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
     
    [#|2009-02-08T22:12:54.293+0100|SEVERE|sun-appserver-pe9.1|javax.enterprise.system.container.web|_ThreadID=13;_ThreadName=httpWorkerThread-8080-1;_RequestID=a4ea1947-5a5a-4227-ba0b-72240b7ee107;|StandardWrapperValve[MainServ]: PWC1382: Allocate exception for servlet MainServ
    java.lang.RuntimeException: WEB5002: Exception in handleBeforeEvent.
    	at com.sun.web.server.J2EEInstanceListener.handleBeforeEvent(J2EEInstanceListener.java:260)
    	at com.sun.web.server.J2EEInstanceListener.instanceEvent(J2EEInstanceListener.java:97)
    	at org.apache.catalina.util.InstanceSupport.fireInstanceEvent(InstanceSupport.java:318)
    	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1118)
    	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:787)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:183)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
    	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:246)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.processNonBlocked(DefaultProcessorTask.java:549)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:789)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:328)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:251)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:205)
    	at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
    	at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:103)
    Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref web.MainServ/dao@jndi: dao.impl.VoitureDaoLocal@null@dao.impl.VoitureDaoLocal@Session@null into class web.MainServ
    	at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:374)
    	at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)
    	at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:104)
    	at com.sun.web.server.J2EEInstanceListener.handleBeforeEvent(J2EEInstanceListener.java:255)
    	... 28 more
    Caused by: javax.naming.NameNotFoundException: dao.impl.VoitureDaoLocal#dao.impl.VoitureDaoLocal not found
    	at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:203)
    	at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:175)
    	at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
    	at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
    	at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
    	at com.sun.enterprise.naming.NamingManagerImpl.lookup(NamingManagerImpl.java:838)
    	at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:156)
    	at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:307)
    	at javax.naming.InitialContext.lookup(InitialContext.java:351)
    	at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:274)
    	... 31 more
    |#]

  12. #12
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    pas besoin d'utiliser les attributs des annotations dans ton cas.
    Sinon une fois l'appli deployee essaye:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bin/asadmin list-jndi-entries

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Je n'ai visiblement que ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UserTransaction: com.sun.enterprise.distributedtx.UserTransactionImpl
    jdbc: com.sun.enterprise.naming.TransientContext
    Command list-jndi-entries executed successfully.

  14. #14
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Dans ce cas, le déploiement s'est mal passé. Par d'erreur plus haut dans le log?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Voici le log complet lors du déploiement :

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    [#|2009-02-09T10:45:25.062+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.061--ServerSession(15744170)--The alias name for the entity class [class entity.Voiture] is being defaulted to: Voiture.
    |#]
     
    [#|2009-02-09T10:45:25.066+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Info]: 2009.02.09 10:45:25.066--ServerSession(15744170)--TopLink, version: Oracle TopLink Essentials - 2006.8 (Build 060908)
    |#]
     
    [#|2009-02-09T10:45:25.070+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.069--ServerSession(15744170)--Connection(11117620)--connecting(DatabaseLogin(
    	platform=>MySQL4Platform
    	user name=> ""
    	connector=>JNDIConnector datasource name=>null
    ))
    |#]
     
    [#|2009-02-09T10:45:25.071+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.071--ServerSession(15744170)--Connection(10352182)--Connected: jdbc:mysql://localhost:3306/jpa
    	User: root@localhost
    	Database: MySQL  Version: 5.1.30
    	Driver: MySQL-AB JDBC Driver  Version: mysql-connector-java-5.1.7 ( Revision: ${svn.Revision} )
    |#]
     
    [#|2009-02-09T10:45:25.072+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.072--ServerSession(15744170)--Connection(9594841)--connecting(DatabaseLogin(
    	platform=>MySQL4Platform
    	user name=> ""
    	connector=>JNDIConnector datasource name=>null
    ))
    |#]
     
    [#|2009-02-09T10:45:25.073+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.073--ServerSession(15744170)--Connection(15579437)--Connected: jdbc:mysql://localhost:3306/jpa
    	User: root@localhost
    	Database: MySQL  Version: 5.1.30
    	Driver: MySQL-AB JDBC Driver  Version: mysql-connector-java-5.1.7 ( Revision: ${svn.Revision} )
    |#]
     
    [#|2009-02-09T10:45:25.076+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Info]: 2009.02.09 10:45:25.076--ServerSession(15744170)--file:/Users/arnaudboeglin/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Test06/WEB-INF/classes/-jpa login successful
    |#]
     
    [#|2009-02-09T10:45:25.078+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Config]: 2009.02.09 10:45:25.078--ServerSession(15744170)--Connection(16768436)--disconnect
    |#]
     
    [#|2009-02-09T10:45:25.078+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.stream.out|_ThreadID=15;_ThreadName=Thread-32;|[TopLink Info]: 2009.02.09 10:45:25.078--ServerSession(15744170)--file:/Users/arnaudboeglin/Documents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/Test06/WEB-INF/classes/-jpa logout successful
    |#]
     
    [#|2009-02-09T10:45:25.140+0100|WARNING|sun-appserver-pe9.1|javax.enterprise.resource.jdo.codegen.ejb|_ThreadID=15;_ThreadName=Thread-32;_RequestID=b9791da3-9ebe-4480-9638-9087a14ad475;|JDO76609: Got SQLException executing statement "CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL(38), PRIMARY KEY (SEQ_NAME))": com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'sequence' already exists|#]
     
    [#|2009-02-09T10:45:25.163+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.tools.deployment|_ThreadID=15;_ThreadName=Thread-32;|deployed with moduleid = Test06|#]
     
    [#|2009-02-09T10:45:25.402+0100|INFO|sun-appserver-pe9.1|javax.enterprise.system.core.naming|_ThreadID=13;_ThreadName=httpWorkerThread-4848-0;java:comp/env/dao.impl.VoitureDaoLocal/em;|naming.bind|#]
     
    [#|2009-02-09T10:45:25.421+0100|CONFIG|sun-appserver-pe9.1|oracle.toplink.essentials.defaultsessionname.ejb_annotation|_ThreadID=13;_ThreadName=httpWorkerThread-4848-0;|The alias name for the entity class [class entity.Voiture] is being defaulted to: Voiture.|#]
     
    [#|2009-02-09T10:45:26.190+0100|SEVERE|sun-appserver-pe9.1|javax.enterprise.system.container.web|_ThreadID=16;_ThreadName=httpWorkerThread-8080-0;_RequestID=180e107b-90c7-43a4-8a5e-2f2a02488340;|WebModule[/Test06]StandardWrapper.Throwable
    java.lang.RuntimeException: WEB5002: Exception in handleBeforeEvent.
    	at com.sun.web.server.J2EEInstanceListener.handleBeforeEvent(J2EEInstanceListener.java:260)
    	at com.sun.web.server.J2EEInstanceListener.instanceEvent(J2EEInstanceListener.java:97)
    	at org.apache.catalina.util.InstanceSupport.fireInstanceEvent(InstanceSupport.java:318)
    	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1118)
    	at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:787)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:183)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
    	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:246)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:182)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipeline.java:120)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:137)
    	at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
    	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.processNonBlocked(DefaultProcessorTask.java:549)
    	at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:789)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:328)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:251)
    	at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:205)
    	at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
    	at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:103)
    Caused by: com.sun.enterprise.InjectionException: Exception attempting to inject Unresolved Ejb-Ref web.MainServ/dao@jndi: dao.impl.VoitureDaoLocal@null@dao.impl.VoitureDaoLocal@Session@null into class web.MainServ
    	at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:374)
    	at com.sun.enterprise.util.InjectionManagerImpl.inject(InjectionManagerImpl.java:193)
    	at com.sun.enterprise.util.InjectionManagerImpl.injectInstance(InjectionManagerImpl.java:104)
    	at com.sun.web.server.J2EEInstanceListener.handleBeforeEvent(J2EEInstanceListener.java:255)
    	... 28 more
    Caused by: javax.naming.NameNotFoundException: dao.impl.VoitureDaoLocal#dao.impl.VoitureDaoLocal not found
    	at com.sun.enterprise.naming.TransientContext.doLookup(TransientContext.java:203)
    	at com.sun.enterprise.naming.TransientContext.lookup(TransientContext.java:175)
    	at com.sun.enterprise.naming.SerialContextProviderImpl.lookup(SerialContextProviderImpl.java:61)
    	at com.sun.enterprise.naming.LocalSerialContextProviderImpl.lookup(LocalSerialContextProviderImpl.java:98)
    	at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:309)
    	at com.sun.enterprise.naming.NamingManagerImpl.lookup(NamingManagerImpl.java:838)
    	at com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:156)
    	at com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:307)
    	at javax.naming.InitialContext.lookup(InitialContext.java:351)
    	at com.sun.enterprise.util.InjectionManagerImpl._inject(InjectionManagerImpl.java:274)
    	... 31 more
    |#]

  16. #16
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    J'ai déployé le même code, simplement sans les attributs des annotations. Cela fonctionne.

    Essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    @Stateless(mappedName="dao/impl/VoitureDaoLocal")
    par un simple :

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Eh bien j'avais déjà essayé justement, je dois configurer quelque chose de spécial ? J'aurais pu omettre une étape durant la configuration de glassFish ? Tout ce que j'ai fait c'est installer mysql, puis configurer mon pool de connections et ma source de données mysql.

  18. #18
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    J'ai fais ca avec JavaDB, mais bon je ne vois pas de différence.
    Arrives-tu à pinger ton pool (Resources > Connection Pools > "pool name" > Ping) ?
    Non, vraiment, je ne pense pas que ça vienne de là.

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 51
    Points : 26
    Points
    26
    Par défaut
    Oui, j'y arrive, d'ailleurs la table se crée bien. Et pour le problème de JNDI, si tu met l'attribut à l'annotation, ça fonctionne encore chez toi ou pas ? Tu as bien tous les noms qui apparaissent ?

  20. #20
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    D'ou sort le "impl" dans le mappedName?
    C'est pas simplement "dao/VoitureDaoLocal"?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/05/2007, 11h39
  2. Syntaxe pour utiliser les recordsets DAO en VBA
    Par boubounne dans le forum VBA Access
    Réponses: 12
    Dernier message: 30/11/2006, 16h25
  3. Réponses: 1
    Dernier message: 30/06/2006, 15h49
  4. Configurer et utiliser les Aliases du projet
    Par EJ dans le forum XMLRAD
    Réponses: 9
    Dernier message: 20/05/2004, 22h51
  5. [Debutant] probleme pour utiliser les classes d'un .jar
    Par pissek dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 12/05/2004, 18h21

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