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

Servlets/JSP Java Discussion :

[SERVLET][EJB][Noob]Utiliser mon SERVLET avec mon EJB


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Par défaut [SERVLET][EJB][Noob]Utiliser mon SERVLET avec mon EJB
    Bonjour à tous,
    Voici mon problème, j'ai crée un session bean qui fonctionne(dont les fochiers ce trouve en bas) et j'aimerai utiliser un SERVLET (ici après) qui demanderai dans la "text box" du fichier servlet.html le profile du user et afficherai une fois uppuyer sur le bouton "submit" les différentes fonctions et modules auxquels il a accès. Mais voilà sa ne fonctionne pas.

    Voici les différents fichiers qui pourraient vous donner une idée de mon problème. Car moi je vous avoue je suis perdu

    On va commencer par le principal mon fichier servlet.java:
    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
     
    package cecusesproject;
     
    import javax.naming.*;
    import javax.rmi.PortableRemoteObject;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;
    import java.util.Vector;
    import javax.naming.Context;
    import javax.rmi.PortableRemoteObject;
     
    public class Servlet extends HttpServlet {
      private CECUSes cECUSes = null;
      private CECUSesHome cECUSesHome = null;
     
      public Servlet() {
        try {
          jbInit();
        }
        catch (Exception ex) {
          ex.printStackTrace();
        }
      }
     
      private static final String CONTENT_TYPE = "text/html";
      //Initialize global variables
      public void init() throws ServletException {
        try {
        Context ctx = new InitialContext();
        Object ref = ctx.lookup("cECUSes");
        cECUSesHome = (CECUSesHome) PortableRemoteObject.narrow(ref, CECUSesHome.class);
        } 
        catch (Exception e) {
                 e.printStackTrace();
               }
      } // end init()
      //Process the HTTP Get request
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //User profile name
        String profileName = request.getParameter("ProfileName");
        if (profileName == null) {
          profileName = "No profile's name was submited !";
        }
      }
      //Process the HTTP Post request
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
        boolean chk = false;
        Vector mod =  new Vector();
        Vector fct =  new Vector();
        String N_M = "1";
        String N_P = "2";
        String N_F = "Go to reporting";
        String profileName = request.getParameter("ProfileName");
        if (profileName == null) {
        profileName = "No profile's name was submited !";
        }
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        try {
           cECUSes = cECUSesHome.create();
        }
        catch (Exception e){
              e.printStackTrace();
        }
        //invocation des methodes metier check(), getModules() et getFCT().
        chk = cECUSes.check(N_M,N_F,profileName);
        mod = cECUSes.getModules(N_P);
        fct = cECUSes.getFCT(N_M,N_P);
        out.println("<html>");
        out.println("<h1>Servlet Proximus</h1>");
        out.println("<body bgcolor=\"#ABACD5\">");
        out.println("<p>You are a, ");
        out.println(profileName);
        out.println("<p>You have access to Module(s) :");
        out.println(mod);
        out.println("<p>You have access to Functionalitie(s) :");
        out.println(fct);
        out.println("</body></html>");
      }
      //Clean up resources
      public void destroy() {
      }
      private void jbInit() throws Exception {
      }
    }
    Et voici l'erreur qu'il me renvoi lorsque je fais un RUN du fichier servlet.html:
    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
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
     
    javax.naming.NameNotFoundException: Unable to resolve 'cECUSes' Resolved ; remaining name 'cECUSes'
     
    	at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:897)
     
    	at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:230)
     
    	at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:154)
     
    	at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:188)
     
    	at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:256)
     
    	at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:359)
     
    	at javax.naming.InitialContext.lookup(InitialContext.java:347)
     
    	at cecusesproject.Servlet.init(Servlet.java:31)
     
    	at javax.servlet.GenericServlet.init(GenericServlet.java:258)
     
    	at weblogic.servlet.internal.ServletStubImpl$ServletInitAction.run(ServletStubImpl.java:1028)
     
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     
    	at weblogic.servlet.internal.ServletStubImpl.createServlet(ServletStubImpl.java:904)
     
    	at weblogic.servlet.internal.ServletStubImpl.createInstances(ServletStubImpl.java:883)
     
    	at weblogic.servlet.internal.ServletStubImpl.prepareServlet(ServletStubImpl.java:822)
     
    	at weblogic.servlet.internal.ServletStubImpl.reloadServlet(ServletStubImpl.java:734)
     
    	at weblogic.servlet.internal.ServletStubImpl.checkForReload(ServletStubImpl.java:699)
     
    	at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:539)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:373)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
     
    	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
     
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     
    	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
     
    	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
     
    	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
     
    	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
     
    java.lang.NullPointerException
     
    	at cecusesproject.Servlet.doPost(Servlet.java:62)
     
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
     
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     
    	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
     
    	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
     
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     
    	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
     
    	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
     
    	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
     
    	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
     
    <Apr 14, 2005 5:24:20 PM CEST> <Error> <HTTP> <BEA-101020> <[ServletContext(id=23922586,name=CECUWebModule,context-path=/CECUWebModule)] Servlet failed with Exception
     
    java.lang.NullPointerException
     
    	at cecusesproject.Servlet.doPost(Servlet.java:68)
     
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
     
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
     
    	at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1006)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
     
    	at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
     
    	at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6718)
     
    	at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     
    	at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
     
    	at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3764)
     
    	at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2644)
     
    	at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
     
    	at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
     
    >
    Voilà sa fait énormément de place, j'espère que je peux me permettre de mettre autant !

    Si il faut je peux fournir les fichiers de mon EJB si vous jugez cela nécéssaire.

    Voilà si quelqu'un peu m'aider, sa serai volontié, car là je bloque grave
    Merci d'avance à tous.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Par défaut
    Bonjour a tous, voici ce que j'ai déjà modifié moi meme (sorry pour le gros paté d'erreurs du dessus, j'aurai du faire plus court ! Mais je suis un noob,...)

    Bon voilà, mon ejb est bien déployé, le make fonctionne bien, et le problème arrive toujours au moment du test du fichier servlet.html.
    Le nom de GNDI est <jndi-name>CECUSes</jndi-name>.
    Et j'ai changé mon code par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Object ref = ctx.lookup("CECUSes");
    Donc jusque là tout va bien il me semble, mais voilà ce qu'il m'affiche maintenant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.lang.NullPointerException
     
    at cecusesproject.Servlet.doPost(Servlet.java:62)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <Apr 15, 2005 10:50:44 AM CEST> <Error> <HTTP> <BEA-101020> <[ServletContext(id=16065256,name=CECUWebModule,context-path=/CECUWebModule)] Servlet failed with Exception
     
    java.lang.NullPointerException
     
    at cecusesproject.Servlet.doPost(Servlet.java:68)

    Voilà j'espère avoir mieux cerné le problème à présent ( plus 2 tonnes de codes d'erreurs , encor sorry).

    Et merci d'avance a tous ceux qui pourraient m'aider !

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Attention, révion du modèle Servlet impératif !

    Il n'y a qu'une et une seule instance de Servlet pour servir plusieurs utilisateurs. Tu ne peu donc pas y conserver de variables membre !

    C'est ok pour l'initial context car il n'est pas nécessaire de le récupérer à chaque fois, par contre, pour la home, je te conseil de la conserver en cache dans un singleton/hashmap.

    ( met y l'init de l'initial context au passage )

    Si tu as des dificulter à implémenter celà, j'essairais de te retrouver mon EjbHomeLocator.

    Cordialement

  4. #4
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Par défaut
    Voilà j'ai modifié mon code par ceci :
    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
     
      public void init() throws ServletException {
        try {
        Context ctx = new InitialContext();
        Object ref = ctx.lookup("CECUSes");
        cECUSesHome = (CECUSesHome) PortableRemoteObject.narrow(ref, CECUSesHome.class);
        if (logging) {
          System.out.println("Succeeded initializing bean access through Home interface.");
          }
        }
        catch (Exception e) {
                 e.printStackTrace();
                 if (logging) {
                   log("Failed initializing bean access.");
                 }
         }
      } // end init()
      //Process the HTTP Get request
      public CECUSes create() {
          try {
           cECUSes = cECUSesHome.create();
             if(logging){
                System.out.println("Succeeded: create()");
             }
          }
          catch (Exception e){
              if (logging) {
                 System.out.println("Failed: create()");
              }
           e.printStackTrace();
          }
          if(logging){
             System.out.println("Return value from create()" + cECUSes + ".");
             }
        return cECUSes;
      }
      public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //User profile name
        String profileName = request.getParameter("ProfileName");
        if (profileName == null) {
          profileName = "No profile's name was submited !";
        }
      }
      //Process the HTTP Post request
      public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
        boolean chk = false;
        Vector mod =  new Vector();
        Vector fct =  new Vector();
        String N_M = "1";
        String N_P = "2";
        String N_F = "Go to reporting";
        String profileName = request.getParameter("ProfileName");
        if (profileName == null) {
        profileName = "No profile's name was submited !";
        }
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        //invocation des methodes metier check(), getModules() et getFCT().
        chk = cECUSes.check(N_M,N_F,profileName);
        mod = cECUSes.getModules(N_P);
        fct = cECUSes.getFCT(N_M,N_P);
        out.println("<html>");
        out.println("<h1>Servlet Proximus</h1>");
        out.println("<body bgcolor=\"#ABACD5\">");
        out.println("<p>You are a, ");
        out.println(profileName);
        if (chk == true){
        out.println("<p>You have access to Module(s) :");
        out.println(mod);
        out.println("<p>You have access to Functionalitie(s) :");
        out.println(fct);  
        }
        else{
        out.println("<p>You do not have access to Module(s) :");
        out.println(mod);
        out.println("<p>You do not have access to Functionalitie(s) :");
        out.println(fct);
        }
        out.println("</body></html>");
      }
    Et sa va mieux j'ai moins d'erreurs à présent, il ne m'en reste plus qu'une :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    java.lang.NullPointerException
     
    at cecusesproject.Servlet.doPost(Servlet.java:87)
    Et cette fameuse ligne 87 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    chk = cECUSes.check(N_M,N_F,profileName);
    Vraisemblement cECUSes est inconnu pour lui, il reçoit null !

    Comment pourrais je faire ??? Merci a vous

  5. #5
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Par défaut
    Citation Envoyé par Alwin
    Attention, révion du modèle Servlet impératif !

    Il n'y a qu'une et une seule instance de Servlet pour servir plusieurs utilisateurs. Tu ne peu donc pas y conserver de variables membre !

    C'est ok pour l'initial context car il n'est pas nécessaire de le récupérer à chaque fois, par contre, pour la home, je te conseil de la conserver en cache dans un singleton/hashmap.

    ( met y l'init de l'initial context au passage )

    Si tu as des dificulter à implémenter celà, j'essairais de te retrouver mon EjbHomeLocator.

    Cordialement
    Par contre je t'avoue que je n'ai pas tout compris, je suis un noob et bon, c'est un peux du charabia tout sa pour moi, si tu saurais m'expliquer sa plus clairment ( en language de noob, lol) merci a toi pour ton aide actuelle en tout cas,

    Cordialement.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 147
    Par défaut
    Voilà et bien j'ai fini par trouver mon erreur, bète me direz vous, mais je n'y avais pas pensé !

    Voici ce que j'ai changé pour que sa marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void doPost(HttpServletRequest request, HttpServletResponse      response) throws ServletException, IOException {
    create();
    ...
    Et oui, je déclare au dessus ma classe mais je ne fait pas d'appel a celle ci dans le doPost ^^', enfin voilà l'erreur.

    Merci a tous ceux qui ont pris la soins de suivre mon post, ciao ciao

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

Discussions similaires

  1. Probleme avec mon tabcontainer et mon repeater
    Par sadem dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/03/2009, 13h23
  2. Héberger mon site sur mon pc avec Apache
    Par calispeed dans le forum Apache
    Réponses: 7
    Dernier message: 30/09/2008, 10h05
  3. Réponses: 5
    Dernier message: 17/11/2006, 17h49
  4. probléme avec mon levelOne ou mon Smc
    Par Moez.B dans le forum Hardware
    Réponses: 5
    Dernier message: 11/09/2006, 14h27
  5. Réponses: 9
    Dernier message: 10/08/2006, 17h33

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