[JSP ] probleme de deploiment avec web.xml
kore62
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
xanadu72 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
xanadu72 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
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:
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:
Donc pour cela j ai creer une classe MonListener comme suit:
et j'ai créé le fichier web.xml suivant:
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:
<% //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"); //String pilote = application.getInitParameter(pilote); 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:
Class.forName("com.mysql.jdbc.Driver");
Donc pour cela j ai creer une classe MonListener comme suit:
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:
<? xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/index.html http://www.oracle.com/webfolder/technetwork/jsc/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> <code> 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 Merci d'avance pour votre aide. Je continue de chercher de mon côté...<code>Configuration: Windows XP Internet Explorer 7.0
A voir également:
- [JSP ] probleme de deploiment avec web.xml
- Commentaire jsp ✓ - Forum Javascript
- L'installation de windows n'a pas pu réinitialiser le moteur de déploiement ✓ - Forum Windows 10
- Erreur jsp - Forum Java
- PHP, ASP, JSP - Forum PHP
- XML et JSP ✓ - Forum Javascript
4 réponses
C'est résolu il ne trouvait pas l'empacement de ma servletListener Monlistener qui etait appelée au demarrage....
Donc en fait, il faut redemarrer TOMCAT et definir le web.xml comme ci-dessous:
Voici mon fichier web.xml:
Donc en fait, il faut redemarrer TOMCAT et definir le web.xml comme ci-dessous:
Voici mon fichier web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/index.html" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> papeterie</display-name> <servlet> <description> </description> <display-name> VerifConnectionSVR</display-name> <servlet-name>VerifConnectionSVR</servlet-name> <servlet-class> maServlet.VerifConnectionSVR</servlet-class> </servlet> <servlet-mapping> <servlet-name>VerifConnectionSVR</servlet-name> <url-pattern>/VerifConnectionSVR</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <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-class>src.MonListener</listener-class> </listener> </web-app>
C'est bon on m'a aiguillé.. c'est un blanc entre le ? et xml dans web.xml qui faisait planter..
Maintenant c'est un probleme de listener start arf!
Voici l'erreur:
4 août 2007 14:13:45 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
Si quelqu'un peut m'aiguiller de nouveau.. Merci.
Maintenant c'est un probleme de listener start arf!
Voici l'erreur:
4 août 2007 14:13:45 org.apache.catalina.core.StandardContext start
GRAVE: Error listenerStart
Si quelqu'un peut m'aiguiller de nouveau.. Merci.
Kore 62,
Une "Listener start error" est la plus part du temps engendrée par une classe non trouvée (ClassNotFoundException). Ca peut être un filtre, un listener ou log4j qui n'est pas bien configuré par exemple . Si tes logs ne t'indiquent pas la classe manquante il faut que tu enlèves la configuration de logging de ta webapp ou que tu la redéfinisse. Tu trouveras sur la page suivante une explication assez complète ainsi que la méthode pour afficher le coupable dans tes logs.
http://www.java-tutorial.ch/java-server-faces/jsf-error-listener-start-error/
Une "Listener start error" est la plus part du temps engendrée par une classe non trouvée (ClassNotFoundException). Ca peut être un filtre, un listener ou log4j qui n'est pas bien configuré par exemple . Si tes logs ne t'indiquent pas la classe manquante il faut que tu enlèves la configuration de logging de ta webapp ou que tu la redéfinisse. Tu trouveras sur la page suivante une explication assez complète ainsi que la méthode pour afficher le coupable dans tes logs.
http://www.java-tutorial.ch/java-server-faces/jsf-error-listener-start-error/
comment creer un autre fichier web.xml parce que mon fichier web.xml je l ai efacé pas expret
et c est pas moi qui la crée.
merci pour votre aide
et c est pas moi qui la crée.
merci pour votre aide
mon problème est très facile,
en effet sur invite de commande pour compiler un programme java on ecrit javac mon application.java
cette commande javac n'est pas reconnu en tant que commande externe ou interne.
Même si j'ai effectué les étapes suivantes:
1-JDK est installé ver 5
2-Variable d'environnement PATH et CLASSPATH sont crées sous chemin (succéssivement) c:\programme file\JDK1.5
et c:\programme file\JDK1.5
merci pour votre aide
en effet sur invite de commande pour compiler un programme java on ecrit javac mon application.java
cette commande javac n'est pas reconnu en tant que commande externe ou interne.
Même si j'ai effectué les étapes suivantes:
1-JDK est installé ver 5
2-Variable d'environnement PATH et CLASSPATH sont crées sous chemin (succéssivement) c:\programme file\JDK1.5
et c:\programme file\JDK1.5
merci pour votre aide