Rechercher : dans
Par :

[JSP ] probleme de deploiment avec web.xml

Dernière réponse le 2 avr 2008 à 11:47:35 kore62, le 4 aoû 2007 à 12:00:20 
 Signaler ce message aux modérateurs

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:

<%
//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://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>
<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

Meilleures réponses pour « [JSP ] probleme de deploiment avec web.xml » dans :
Configuration du Framework Acegi dans application Web JAVA J2EE Voir Etape 1: Mettre le acegi-security-1.0.0-RC2.jar sous le répertoire lib de votre application: Etape 2: Configuration des listeners et des filtres: Etape 3: Configuration des filtres et des listeners dans le fichier web.xml: Etape 4:...
[Aspirateur de pages HTML] Comment aspirer un site Web ? VoirHTTrack est un excellent aspirateur, gratuit en licence GNU GPL (libre). HTTrack permet de télécharger un site web d'Internet vers votre disque dur, en construisant récursivement tous les répertoires, récupérant html, images et fichiers du serveur...
[Webmaster] Les polices dans les pages web VoirLes limites du web Quand vous utilisez une police dans une page web, elle ne s'affichera que si l'internaute a la même police installée sur son ordinateur. Vous n'avez aucun moyen de forcer l'internaute à télécharger et installer une police, pas...
[Webmaster] Publier facilement une vidéo dans une page web VoirPublier une vidéo dans une page web n'est pas toujours évident: Selon le format (AVI, MPG, MOV...) tout le monde ne possède pas forcément le bon plugin et le bon codec. En revanche, la quasi-totalité des navigateurs possèdent le plugin Flash (SWF)....
Télécharger Dr.Web CureIt! VoirUtilitaire GRATUIT et simple d'utilisation pour désinfecter votre ordinateur des virus et de nombreux codes indésirables, mis à disposition par Dr.Web Anti-virus et mis à jour une à plusieurs fois par heure. CureIT! détecte et supprime : Les vers...
Télécharger DriveImage XML VoirDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des...
Télécharger K9 Web Protection VoirK9 Web Protection est un logiciel de contrôle parental permettant de contrôler et de limiter les accès à Internet de son enfant. Il obtient cinq étoiles sur six sur le site filtra.info, ce qui le positionne comme un des meilleurs logiciels de...
Exemples d'applications multilangage VoirExemples d’applications multilangage Le centre .NET Framework de Microsoft propose quantité d’exemples de code pour en savoir plus sur la création d’applications basées sur Microsoft Windows, d’applications web et de services Web XML. Consultez la...
Introduction aux Java Server Pages VoirPrésentation des Java Server Pages Les JSP (Java Server Pages) sont un standard permettant de développer des applications Web interactives, c'est-à-dire dont le contenu est dynamique. C'est-à-dire qu'une page web JSP (repérable par l'extension...
XML-RPC (Remote Procedure Call) VoirXML-RPC Le standard XML-RPC, défini depuis 1998, est un protocole basé sur XML permettant l'invocation de procédures à distance. Avec XML-RPX l'appel d'une

1

kore62, le 4 aoû 2007 à 14:36:32

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.

Répondre à kore62

2

kore62, le 5 aoû 2007 à 00:28:16
  • +2

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:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" 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">
	<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>

Répondre à kore62

3

tunisien, le 24 jan 2008 à 10:41:42

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

Répondre à tunisien

4

beji, le 2 avr 2008 à 11:37:05

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

Répondre à beji

5

 nO, le 2 avr 2008 à 11:47:35

As-tu pensé à redémarrer le système?

nO

Répondre à nO
Collection CommentÇaMarche.net