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 :

[DEBUTANT]Problème de deployement avec web.xml


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut [DEBUTANT]Problème de deployement avec web.xml
    Bonjour tout le monde...
    Je suis actuellement entrain de développer une première application à l'aide de JSP.. J'utilise TOMCAT 5.5 et MYSQL 5 installés tout les deux en local et JDK 5..

    Au départ pas de problème de déployment, j'arrivais à faire des connexions via jdbc en incluant le code de connection dans chaque page jsp. Du style, j ai une page connectionClient.jsp avec le code 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
    <%
    //Declaration des variables
    String identifiantCh = request.getParameter("identifiant"), motDePasseCh = request.getParameter("motDePasse");
    boolean isPresent = false;
    int idClient=0;
     
    //Connexion a la base de donnees
    Class.forName("com.mysql.jdbc.Driver");
            java.sql.Connection cnx = java.sql.DriverManager.getConnection(urlbase, login, pwd);
     
    java.sql.Statement requete = cnx.createStatement();
    ResultSet rs = requete.executeQuery("SELECT * FROM client");
     
    //Suite du traitement
    Maintenant, ce qu je voudrais c'est créer un ContextListener qui me charge intialement le driver jdbc de la base afin de supprimer de chaque page jsp l'appel systématique à la ligne de code suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Class.forName("com.mysql.jdbc.Driver");
    Donc pour cela j ai creer une classe MonListener comme suit:
    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
    package src;
    import java.sql.*;
    import javax.servlet.*;
     
    public class MonListener implements ServletContextListener{
    //Methodes a implementer declaree dans l'interface ServletContextListener
    public void contextInitialized(ServletContextEvent sce){
    try{
       ServletContext application = sce.getServletContext();
       String pilote = application.getInitParameter("pilote"); 
       Class.forName(pilote);
    }catch(Exception e){
    }//trycatch
    }//contextInitialized
     
    public void contextDestroyed(ServletContextEvent sce){
    //instructions executees a l'arret de l'application
    }//contextDestroyed
    }//class MonListener
    et j'ai créé le fichier web.xml suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <? xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
    <context-param>
    <param-name>pilote</param-name>
    <param-value>com.mysql.jdbc.Driver</param-value>
    </context-param>
    <listener>
    <listener-class>.MonListener</listener-class>
    </listener>
    </web-app>
    Soit je place le fichier web.xml en dehors de mon dossier WEB-INF de mon application sachant que WEB-INF contient un dossier "/classes/src/*.class".
    Lorsque je veux acceder à ma page connexionClient.jsp, j'obtiens cette erreur:

    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP:

    Une erreur s'est produite à la ligne: 18 dans le fichier jsp: /connexionClient.jsp
    The local variable pilote may not have been initialized
    15: //Connexion a la base de donnees
    16: //Class.forName("com.mysql.jdbc.Driver");
    17:
    18: String pilote = application.getInitParameter(pilote);
    19:
    20: java.sql.Connection cnx = java.sql.DriverManager.getConnection(urldatabase, login, lot de passe);
    21: //String bd = application.getInitParameter("baseDeDonnees");


    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    Soit je place le fichier web.xml mais Tomcat m'envoie cette erreur au moment du déployement:
    ECHEC - L'application pour le chemin de contexte /papeterie n'a pas puêtredémarrée
    Voici l'erreur en détail dans le fichier manager.log:

    4 août 2007 11:31:20 org.apache.tomcat.util.digester.Digester fatalError
    GRAVE: Parse Fatal Error at line 1 column 3: The processing instruction must begin with the name of the target.
    org.xml.sax.SAXParseException: The processing instruction must begin with the name of the target.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPI(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:352)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1044)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1176)
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542)
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Unknown Source)
    4 août 2007 11:31:20 org.apache.catalina.startup.ContextConfig applicationWebConfig
    GRAVE: Erreur d'évaluation (parse) dans le fichier web.xml de l'application à jndi:/localhost/papeterie/WEB-INF/web.xml
    org.xml.sax.SAXParseException: The processing instruction must begin with the name of the target.
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1562)
    at org.apache.catalina.startup.ContextConfig.applicationWebConfig(ContextConfig.java:352)
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1044)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
    at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1176)
    at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:542)
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:105)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
    at java.lang.Thread.run(Unknown Source)
    4 août 2007 11:31:20 org.apache.catalina.startup.ContextConfig applicationWebConfig
    GRAVE: S'est produite à la ligne 1 colonne 3
    4 août 2007 11:31:20 org.apache.catalina.startup.ContextConfig start
    GRAVE: Cette application est marquée comme non disponible suite aux erreurs précédentes
    4 août 2007 11:31:20 org.apache.catalina.core.StandardContext start
    GRAVE: Error getConfigured
    4 août 2007 11:31:20 org.apache.catalina.core.StandardContext start
    GRAVE: Erreur de démarrage du contexte [/papeterie] suite aux erreurs précédentes

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    GRAVE: Parse Fatal Error at line 1 column 3: The processing instruction must begin with the name of the target.
    GRAVE: Erreur d'évaluation (parse) dans le fichier web.xml de l'application à jndi:/localhost/papeterie/WEB-INF/web.xml
    Comme l'indiquent les messages d'erreurs, il y a un problème de parsing du web.xml.
    En fait, il y a une erreur à la ligne 1 colonne 3 dans le web.xml.
    Il faut enlever le blanc en colonne 3 et donc coder la première ligne du web.xml comme ceci :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?>

  3. #3
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    Je vous remercie pour cette réponse rapide. C'est agréable de voir qu'on peut être aidé.. merci encore.

    Certes cette erreur est stupide mais un autre problème doit entrer en jeu.

    J'obtiens un nouveau log comme celui-ci aprés la correction du web.xml:

    4 août 2007 14:13:45 org.apache.catalina.core.StandardContext start
    GRAVE: Error listenerStart
    4 août 2007 14:13:45 org.apache.catalina.core.StandardContext start
    GRAVE: Erreur de démarrage du contexte [/papeterie] suite aux erreurs précédentes
    Pas trés clair ce log... Je vois vraiment pas d'où vient cette erreur.
    Au niveau de la balise Listener je dois préciser ".MonListener" ou ".src.Monlistener"? (sachant que le .class MonListener.class se situe dans "WEB-INF/classes/src")

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Essaie plutôt :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <listener>
       <listener-class>src.MonListener</listener-class>
    </listener>

  5. #5
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    Désolé Toujours le même log que précedemment. Je remets le contenu du fichier web.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
    15
    16
    17
    18
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
        version="2.4">
    <display-name>papeterie</display-name>
    <context-param>
    <param-name>pilote</param-name>
    <param-value>org.gjt.mm.mysql.Driver</param-value>
    </context-param>
    <context-param>
    <param-name>baseDeDonnees</param-name>
    <param-value>jdbc:mysql://localhost/papeterie</param-value>
    </context-param>
    <listener>
    <listener-class>src.MonListener</listener-class>
    </listener>
    </web-app>
    J'ai un log peut ête plus détaillé:
    4 août 2007 14:34:22 org.apache.catalina.core.StandardContext start
    GRAVE: Error listenerStart
    4 août 2007 14:34:22 org.apache.catalina.core.StandardContext start
    GRAVE: Erreur de démarrage du contexte [/papeterie] suite aux erreurs précédentes
    4 août 2007 14:34:22 org.apache.coyote.http11.Http11BaseProtocol start
    INFO: Démarrage de Coyote HTTP/1.1 sur http-8080
    4 août 2007 14:34:22 org.apache.jk.common.ChannelSocket init
    INFO: JK: ajp13 listening on /0.0.0.0:8009
    4 août 2007 14:34:22 org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/15 config=null
    4 août 2007 14:34:22 org.apache.catalina.storeconfig.StoreLoader load
    INFO: Find registry server-registry.xml at classpath resource
    4 août 2007 14:34:22 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 1109 ms

  6. #6
    Membre éprouvé Avatar de kore62
    Profil pro
    Inscrit en
    Août 2007
    Messages
    222
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 222
    Par défaut
    J'ai redemarrer Tomcat...
    Bon j'ai relancé mon fichier Ant une seconde fois en ayant fermé tous les navigateurs appelant mon appliweb... Et ca fonctionne!!

    Peut être un probleme d'actualisation... Pourtant mon fichier ant redemarre l'application automatiquement.
    Si vous avez une idee sur la question expliquer moi..

    En tout cas merci c_nvy pour votre aide...
    Enfin un forum où l'on est pas pris pour des taches quand on debute dans une nouvelle technologie..

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

Discussions similaires

  1. [EAR] Problème JBoss avec web.xml
    Par toufik3119 dans le forum Java EE
    Réponses: 2
    Dernier message: 07/08/2011, 22h24
  2. [DEBUTANT] Problème de lecture avec un fscanf
    Par Pingouin dans le forum C
    Réponses: 26
    Dernier message: 28/05/2006, 18h10
  3. Pb avec web.xml et taglib
    Par Kpone dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 20/03/2006, 11h59
  4. [Tomcat]probleme avec web.xml
    Par The_freeman dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 25/01/2006, 22h32
  5. [Tomcat] Problème avec web.xml
    Par hichamus dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/03/2005, 16h57

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