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

Java EE Discussion :

deploiement et execution avec Eclipse [EJB3]


Sujet :

Java EE

  1. #1
    Membre confirmé Avatar de maysam
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut deploiement et execution avec Eclipse
    bonjour à tous
    je suis toute nouvelle dans l'utilisation des EJB 3. j'ai créer une EJB entity (représentant une table d'une BD qui existe déjà) et une EJB stateless (qui contient une méthode de recherche sur la table de la BD).

    Le problème c'est que je ne sais pas comment tester le fonctionnement de cet EJB j'ai cru comprendre qu'il faut déployer dans JBoss, quant à l'exécution, je ne sais vraiment pas comment faire.

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Les EJB doivent êtres déployés dans un conteneur d'EJB.
    La pluspart des serveurs d'application en possèdent un :
    - glassfish
    - jboss
    - websphere
    - ...
    Le serveur que tu vas utiliser doit également gérer les EJB3.

    L'appel d'un EJB depuis une application doit se faire via un lookup jndi.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Personnellement, je passe par une classe spécialisée pour accéder aux EJB.
    Ci-joint le code (à compléter)
    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
     
    package com.utils;
     
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
    public class EjbLocator
    {
        private static Context ctx;
        private static EjbLocator instance = new EjbLocator();
     
        private EjbLocator()
        {
            try
            {
                ctx = new InitialContext();
            }
            catch (NamingException e)
            {
                logger.error(e.toString());
            }
        }
     
        public static EjbLocator getLocator()
        {
            return instance;
        }
     
        @SuppressWarnings("unchecked")
        private <T> T getEjb(Class<T> ejbClass, String name)
        {
            try
            {
                T service = (T) ctx.lookup(name);
                return service;
            }
            catch (NamingException e)
            {
                return null;
            }
        }
     
    /*
     * Mettre ici tous les cas à gérer -----------------------------------
     */ 
     
        public MonInterfaceRemote getMonInterfaceRemote()
        {
            return getEjb(MonInterfaceRemote.class, "MonInterface/remote");
        }
        public MonInterfaceLocal getMonInterfaceLocal()
        {
            return getEjb(MonInterfaceLocal.class, "MonInterface/local");
        }
     
    }
    Du coup, tu peux l'utiliser comme ceci dans ton programme de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonInterfaceLocal monEJB = EjbLocator.getLocator().getMonIntefaceLocal();
    C'est plus clair ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre Expert
    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
    Par défaut
    Citation Envoyé par mad-math Voir le message
    L'appel d'un EJB depuis une application doit se faire via un lookup jndi.
    Un des intérêts des EJB3 c'est que JNDi devient facultatif avec l'injection de référence par exemple @EJB si tu travailles avec un objet dont le cycle de vie est géré par le conteneur (servlet, EJB, web service, JSF Managed Bean).

  5. #5
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par alexismp Voir le message
    Un des intérêts des EJB3 c'est que JNDi devient facultatif avec l'injection de référence par exemple @EJB si tu travailles avec un objet dont le cycle de vie est géré par le conteneur (servlet, EJB, web service, JSF Managed Bean).
    J'ai déjà essayé est cela ne fonctionne pas : je suis toujours obligé de passer par un Context. D'où la question : dans quel cas particulier cela fonctionne-t-il ?

    Merci.

  6. #6
    Membre Expert
    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
    Par défaut
    pour les objets dont le cycle de vie est géré par le conteneur: servlet, ejb, jsf managed beans et app client container.

  7. #7
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par alexismp Voir le message
    pour les objets dont le cycle de vie est géré par le conteneur: servlet, ejb, jsf managed beans et app client container.
    Dans eclipse, c'est une " Application Client Project " : donc cela devrait fonctionner ?

    A+

  8. #8
    Membre Expert
    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
    Par défaut
    "Application Client Project": non je ne pense pas, il manque le mot "container". je fais référence à l'ACC (Application Client Container).

  9. #9
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par alexismp Voir le message
    "Application Client Project": non je ne pense pas, il manque le mot "container". je fais référence à l'ACC (Application Client Container).
    Avec eclipse :

    Pour le EAR qui est déployé sur le serveur JBoss (il contient l'application cliente, les ejb et les entity) : Entreprise Application Project

    Pour les ejb : EJB Project

    Pour les entity : JPA Project

    Pour l'application cliente : Application Client Project

    Où est donc l'erreur ?

    Je n'ai pas trouvé de Application Client Container dans eclipse.

    A+

  10. #10
    Membre Expert
    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
    Par défaut
    Je connais mal Eclipse. Après tout c'est peut-être bien ça...
    Le tout c'est que le serveur d'appli (le conteneur) ait l'occasion de procéder à l'injection de la ressource. Il faut donc soit démarrer avec des JAR du serveur dans la classpath, soit déployer l'appli complète (client compris) et récupérer le client via Java WebStart par exemple (c'est ce que propose GlassFish).

  11. #11
    Membre chevronné Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    J'ai déjà essayé est cela ne fonctionne pas : je suis toujours obligé de passer par un Context. D'où la question : dans quel cas particulier cela fonctionne-t-il ?

    Merci.
    Quelle version de Jboss?

  12. #12
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 241
    Par défaut
    Citation Envoyé par toomsounet Voir le message
    Quelle version de Jboss?
    JBoss 5.0.0 GA

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

Discussions similaires

  1. Jar executable avec eclipse
    Par Bulveye dans le forum Applets
    Réponses: 0
    Dernier message: 11/06/2010, 20h08
  2. problème d'execution avec eclipse.
    Par barbug dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 10/06/2008, 20h41
  3. executable avec eclipse
    Par inter_amine dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/01/2007, 09h23
  4. probleme executable avec eclipse
    Par sebemo dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 07/07/2006, 14h56
  5. problème d'execution de JSP avec eclipse - TOMCAT
    Par Staron dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/12/2004, 21h48

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