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

Tomcat et TomEE Java Discussion :

[EJB+JSP+Tomcat] Appel d'une page JSP à partir d'un bean


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 9
    Points : 11
    Points
    11
    Par défaut [EJB+JSP+Tomcat] Appel d'une page JSP à partir d'un bean
    Bonjour tout le monde,

    Je suis sous Windows XP, et j'utilise Tomcat 5.
    j'ai créé un projet "projet" dans le répertoire $CATALINA_HOME\webapps\. à la racine de ce projet j'ai mis un fichier html index.html qui appel la servlet AfficheResult. Cette dernière appelle le bean GestionF1. Ce bean initialise le contexte nécessaire pour la fichier jsp accueil.jsp. le fichier accueil.jsp se trouve également à la racine du projet.
    La servlet AfficheResult et le bean GestionF1 font partis du package formula1 disponible dans le répertoire $CATALINA_HOME\webapps\projet\WEB-INF\classes. Dans le fichier web.xml correspondant à mon projet j'ai mis les lignes suivantes pour déclarer la servlet AfficheResult:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <servlet>
            <servlet-name>AfficheResult</servlet-name>
            <servlet-class>formula1.AfficheResult</servlet-class>
    </servlet>
    	<servlet-mapping>
            <servlet-name>AfficheResult</servlet-name>
            <url-pattern>/servlet/AfficheResult</url-pattern>
        </servlet-mapping>
    La partie de code de la servlet AfficheResult pertmettant d'appeller le jsp:
    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
     
    public void doGet(HttpServletRequest request,
    					  HttpServletResponse response) throws IOException,ServletException
    	{
    		resultat=new GestionF1(1,con);
    		try
    		{
    			gotoPage("/accueil.jsp",request,response);
    		}
    		catch (Exception e)
    		{
    			response.setContentType(CONTENT_TYPE);
    			PrintWriter out=response.getWriter();
    			out.println("<html><body>");
    			out.println("Erreur : "+ e.getMessage());
    			out.println("</body></html>");
    		}
     
    	}
     
     
    	public void doPost(HttpServletRequest request,
    					  HttpServletResponse response) throws IOException,ServletException
    	{
    		doGet(request,response);
    	}
     
    	private void gotoPage(String adress,HttpServletRequest request,HttpServletResponse response)
    		throws ServletException,IOException
    	{
    		RequestDispatcher dispatcher=getServletContext().getRequestDispatcher(adress);
    		dispatcher.forward(request,response);
    	}
    Le code du fichier jsp accueil.jsp est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <%@ page import="formula1.*" %>
    <jsp:useBean id="resultat" class="GestionF1" scope="request"/>
    <HTML>
    <HEAD><TITLE>La page d'accueil</TITLE></HEAD>
    <BODY>
    <H2 Align="center">Les resultats du GP de<%= resultat.getResultat()[1][0]%></H2>
    </BODY>
    </HTML>
    Seulement voilà, j'ai une erreur de compilation de la page jsp. il ne connait pas le package formula1 crée.
    Je ne sais pas comment faire. merci de votre aide.
    l'erreur affichée est la suivant:
    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
     
    Une erreur s'est produite à la ligne: 2 dans le fichier jsp: /accueil.jsp
     
    Erreur de servlet générée:
        [javac] Compiling 1 source file
     
    C:\Applis\Tomcat5.0\work\Catalina\localhost\Soufiane\org\apache\jsp\accueil_jsp.java:49: cannot resolve symbol
    symbol  : constructor GestionF1 ()
    location: class formula1.GestionF1
              resultat = new GestionF1();
                         ^
    1 error
     
     
    	org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:127)
    	org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:351)
    	org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:458)
    	org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:553)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:291)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	formula1.AfficheResult.gotoPage(AfficheResult.java:88)
    	formula1.AfficheResult.doGet(AfficheResult.java:56)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    	filters.ExampleFilter.doFilter(ExampleFilter.java:149)
    Soufiane HAKKOU

  2. #2
    Membre habitué Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Points : 159
    Points
    159
    Par défaut
    Je ne suis pas sûr que ça puisse être si simple, mais essayes en ajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ page import="formula1" %>
    Je pense à ça parcequ'il me semble que formula1.* n'importe que les SOUS paquetages...
    Membre du comité "Mort aux cons ! ARG..."
    Plus on essaye, et plus on a de chances de réussir... proverbe Shadok.
    Pensez au tag [Résolu], merci.

  3. #3
    Membre habitué
    Avatar de dtateur
    Inscrit en
    Mars 2004
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 106
    Points : 140
    Points
    140
    Par défaut
    ta classe GestionF1 doit posséder un constructeur sans argument.
    Est-ce le cas ???

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GestionF1 resultat = new GestionF1();
    ???

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Exacte,
    Je dispose d'un constructeur GestionF1(int i,Connection con)
    et justement je ne comprends pas trop pourquoi la page jsp cherche le constructeur GestionF1()!
    Dans la servlet AfficheResult j'initialise un nouveau objet que transmet au contexte par la suite. La variable con est initialisée dans la méthode init(ServletConfig conf) de la class AfficheResult!
    Merci de m'expliquer par ce que là je ne vois pas clair
    Soufiane HAKKOU

  6. #6
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Les javabean fonctionne avec l'introspection.

    Par defaut, il faut un constructeur vide car l'introspecteur doit pouvoir construire l'objet ss présumer de ses autres constructeurs, simplement en invoquant le constructeur par défaut sur un objet résolu dynamiquement.

    POur plus de précisions , je t'invite à lire les spécifications de JAVABEAN sur le site de Sun.


    @+

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    exact c'est une des regles des javabeans tu dois avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public GestionF1(){
    }

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Merci pour l'explication,

    Mais comment peut on alors transmettre une connexion de base de donnée?
    En fait, au lancement, la servlet AfficheResult établie une connexion à la base grace à la méthode init(ServletConfig conf), ensuite la méthode doGet(...) initialise l'objet demandé pour la page jsp.
    Dois je absolument utilisé les pool de connexion?
    Soufiane HAKKOU

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    C'est pas tout a fait le meme probleme ca...
    Fais voir ton code.
    moi pour les bases de données j'utilise un bean dédié mais ca depend de ton architecture...

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

Discussions similaires

  1. Appel d'une page JSP
    Par robbiekeane dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 25/09/2009, 09h24
  2. appel d'une page JSP a partir une servlet
    Par sniper_marra dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/09/2008, 00h45
  3. Page JSP et renvoie vers une page aspx
    Par lenoil dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/10/2007, 18h38
  4. [JSP] [Servlet] Exit d'une page JSP ou d'une servlet
    Par boutss dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 27/02/2006, 07h50
  5. [JSP] pbl chargement d'une page JSP
    Par Shiryu44 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 30/03/2005, 10h49

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