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

Wildfly/JBoss Java Discussion :

Problème EJB3 et servlet


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Par défaut Problème EJB3 et servlet
    bonjour

    je suis en train de développer une application web avec ejb3, eclipse WTP et jboss 4.2. mais je n'arrive pas à appeler mon bean à partir d'une servlet

    voici mon interface :
    @Remote
    public interface GestionProjetRemote {

    public void addProjet(String code, String cout,String duree,String libelle);
    public void addP(Projet pj);
    public String hello();
    }


    et le bean :
    @Stateless (name="GestionProjet")
    @PersistenceContext (name="firstJPA")
    public class GestionProjet implements GestionProjetRemote {

    private EntityManager em;
    private Projet prj;


    public GestionProjet() {

    }
    public void addProjet(String code, String cout, String duree, String libelle) {

    prj = new Projet();
    prj.setCode(code);
    prj.setCout(cout);
    prj.setDuree(duree);
    prj.setLibelle(libelle);
    em.persist(prj);


    }

    public void addP(Projet pj){
    em.persist(pj);
    }

    public String hello(){
    return ("coucou");
    }


    et voici le code de la servlet , je récuperer les données à partir d'une jsp pour les insérer dans une base Mysql:

    String d1 = request.getParameter("projetCode");

    String d2 =request.getParameter("cout");

    String d3 =request.getParameter("duree");

    String d4 =request.getParameter("noteLancement");

    Hashtable ht=new Hashtable();
    ht.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
    ht.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
    ht.put("java.naming.provider.url", "localhost:1099");

    try {
    InitialContext context = new InitialContext(ht);
    GestionProjetRemote gp = (GestionProjetRemote) context.lookup("GestionProjet/remote");
    gp.addProjet(d1, d2, d3, d4);
    } catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();


    le bean se déploi sans problème mais l'application web ne marche pas

    merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ca ne marche pas, ca ne veut rien dire mon grand.
    C'est quoi l'erreur, envoie nous la trace.
    Déjà modifie ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @Stateless (name="GestionProjet")
    @PersistenceContext (name="firstJPA")
    public class GestionProjet implements GestionProjetRemote {
     
    private EntityManager em;
    ...
    GestionProjetRemote gp = (GestionProjetRemote) context.lookup("GestionProjet/remote");
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @Stateless (name="GestionProjet")
    public class GestionProjet implements GestionProjetRemote {
    @PersistenceContext (name="firstJPA")
    private EntityManager em;
    ...
    GestionProjetRemote gp = (GestionProjetRemote) context.lookup("GestionProjet");
    Modifie et retestes.
    Et autre chose je serai toi je ne déclarerai pas mon entityManager dans un stateless, imagine que t'aies plusieurs stateless dans ton projet.
    La bonne pratique c'est créer un singleton qui jouera le rôle de manager de persistence dans tout ton projet, et c'est dans ce singleton que tu declares ton entityManager, et que tu fais tes acces à la base.

  3. #3
    Membre confirmé
    Inscrit en
    Août 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 72
    Par défaut
    c'est bon ça marche maintenant !!! merci

    concernant le singleton !! je n'ai pas compris ce qu'il faut faire ?? je commence à peine les EJB !!

Discussions similaires

  1. Problème useBean JSP / SERVLET
    Par tofke dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 02/01/2008, 11h25
  2. problème d'une servlet de connection à la BD Mysql
    Par psycho_xn dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 25/05/2007, 08h33
  3. Problème avec les servlets sous eclipse
    Par supertoms dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 03/03/2007, 19h07
  4. Problème de lancement Servlet avec Hibernate
    Par jamy79 dans le forum Hibernate
    Réponses: 2
    Dernier message: 24/11/2006, 11h55
  5. [SQL QUERY] Problème avec les servlet plutôt qu'avec SQL
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 11/04/2006, 01h08

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