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

Spring Web Java Discussion :

problème avec le listenerContext


Sujet :

Spring Web Java

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut problème avec le listenerContext
    Salut,

    Je suis nveau en Spring.
    g fait une vue qui contient un formulaire avec 4 textfields et un submit.
    une classe controller qui etend de SimpleFormController.
    une autre vue pour afficher les valeurs saisies en cas de succes.
    Bref tout fonctionnait à merveille.
    Lorsque j'ai voulu ajouter un controle d'erreurs (validator) exactement comme indiqué dans plusieurs cours et tutoriaux une exception java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered? s'est produite.
    Alors j'ai ajouté la balise :
    <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    dans mon web.xml

    et là rien ne va plus. le browser m'affiche toujours que la page spécifiée est inexistante (g crée même une page HTML independante et ça ne marche pas n'en plus).
    Mon container est Tomcat 5.5 et g lu que la balise du listener equivalente est celle que j'ai ajouté.

    En résumant:
    - un web.xml sans declaration du listener fonctionne sans probleme jusqu'à ce que j'ajoute le validator.
    - un web.xml avec declaration du listener ne fonctionne plus (tous les cours et tutoriaux declarent le listener dans le web.xml)

    je suis perduuuuuu

  2. #2
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Montre un peu tes différents fichier spring qu'on puisse avoir une idée
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    WEB-INF/applicationContext.xml :

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     
    <beans>
     
     
    	<bean id="sessionFactory"
    		class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    		<property name="configLocation">
    			<value>classpath:hibernate.cfg.xml</value>
    		</property>
    	</bean>
    	<bean id="EtudiantDAO" class="com.ncs.hibernate.EtudiantDAO">
    		<property name="sessionFactory">
    			<ref bean="sessionFactory" />
    		</property>
    	</bean>
    	<bean name="/home.form"
    		class="com.ncs.spring.controllers.HomeController">
    		<property name="greeting">
    			<value>
    				Bienvenu: Votre application est bien configurée
    			</value>
    		</property>
    	</bean>
    	<bean id="viewResolver"
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix">
    			<value>/</value>
    		</property>
    		<property name="suffix">
    			<value>.jsp</value>
    		</property>
    		<property name="viewClass">
    			<value>org.springframework.web.servlet.view.JstlView</value>
    		</property>
    	</bean>
    	<bean name="/etudiant.form"
    		class="com.ncs.spring.controllers.EtudiantController">
    		<property name="etudiantDAO">
    			<ref bean="EtudiantDAO" />
    		</property>
    		<property name="formView">
    			<value>simpleform</value>
    		</property>
    		<property name="successView">
    			<value>etudiantRegistred</value>
    		</property>
    		<property name="validator">
    			<ref bean="Etudiant.Validator" />
    		</property>
    	</bean>
    	<bean id="Etudiant.Validator"
    		class="com.ncs.spring.validators.EtudiantValidator">
    	</bean>
    	<bean id="messageSource"
    		class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    		<property name="basename">
    			<value>messages</value>
    		</property>
    	</bean></beans>

    WEB-INF/web.xml :

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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">
     
    	  <servlet>
     
                <servlet-name>hibernateSpring</servlet-name>
     
                <servlet-class>
     
                      org.springframework.web.servlet.DispatcherServlet
     
                </servlet-class>
     
                <load-on-startup>1</load-on-startup>
     
          </servlet>
     
          <servlet-mapping>
     
                <servlet-name>hibernateSpring</servlet-name>
     
                <url-pattern>*.form</url-pattern>
     
          </servlet-mapping>
     
          <context-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/applicationContext.xml,
    							hibernate.cfg.xml</param-value>
    	  </context-param>
     
    	  <listener>
    			<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	  </listener>
     
     
     
    </web-app>

    /simpleform.jsp :

    Code html : 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
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="/WEB-INF/spring.tld" prefix="spring" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Formulaire</title>
    </head>
    <body>
     
     
    	<form method="post" action="<c:url value="/etudiant.form"/>">
    	<h3 align="center"><font color="#0000ff">Formulaire de l'etudiant</font><br></h3>
    	<table>
    	<tbody>
     
    	<tr>
     
    	<td>&nbsp;Nom :<br></td>
    	<td>&nbsp;<input type="text" size="30" name="nomEtudiant"/></td>
     
    	</tr>
     
    	<tr>
     
    	<td>&nbsp;Prénom :<br></td>
    	<td>&nbsp;<input type="text" size="30" name="prenomEtudiant"/></td>
     
    	</tr>
     
    	<tr>
     
    	<td>&nbsp;Email :<br></td>
    	<td>&nbsp;<input type="text" size="30" name="emailEtudiant"></td>
     
    	</tr>
     
    	<tr>
     
    	<td>&nbsp;Adresse</td>
    	<td>&nbsp;<input type="text" size="30" name="adresseEtudiant"></td>
     
    	</tr>
    	<tr>
    	<td>
    	<input type="submit" value="valider" name="valider">
    	</td>
    	</tr>
    	</tbody>
    	</table> 
    	</form>
     
    </body>
    </html>

    EtudiantController.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
    package com.ncs.spring.controllers;
     
    import org.springframework.validation.BindException;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.SimpleFormController;
     
    import com.ncs.hibernate.Etudiant;
    import com.ncs.hibernate.EtudiantDAO;
     
    public class EtudiantController extends SimpleFormController{
     
    	public EtudiantController(){
    		setCommandClass(Etudiant.class);
    	}
     
    	protected ModelAndView onSubmit(Object command,BindException errors) {
    		try{
    			System.out.println("Etudiant saving ...");
    			Etudiant etudiant = (Etudiant) command;
    			System.out.println("nom :"+etudiant.getNomEtudiant());
    			System.out.println("id :"+etudiant.getCodeEtudiant());
    			System.out.println("Etudiant is being saved");
    			etudiantDAO.save(etudiant);
    			System.out.println("Etudiant saved");
    			return new ModelAndView(getSuccessView(),"etudiant", etudiant);
    		}catch(RuntimeException re){re.toString();}
    		return null;
    	}
     
    	private EtudiantDAO etudiantDAO;
     
    	public void setEtudiantDAO(EtudiantDAO etudiantDAO) {
    		this.etudiantDAO = etudiantDAO;
    	}
     
    }
    pour Etudiant.java et HibernateSessionFactory et EtudiantDAO je crois qu'ils ninterviennent pas dans ce probleme.

    Personnellement j'ai un doute dans les jars.
    les miens sont :
    spring-1.2.8.jar, mysql...jar , Hibernate 3.0 core libraries, Spring 1.2 ORM/DAO/Hibernate3, standard.jar et jstl.jar

    l'exception générée est : GRAVE: Erreur lors de la configuration de la classe d'écoute de l'application (application listener) org.springframework.web.context.ContextLoaderListener
    java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Le déploiement ne s'effectue pas du à cette balise :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <listener>
    			<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     
    </listener>

    malgré que la classe existe bien dans mon jar.

  5. #5
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Je doute que cela ait un rapport mais on sait jamais, change l'ordre :

    Code xml : 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
     
     
    <web-app 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">
     
     
          <context-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/applicationContext.xml,
    							hibernate.cfg.xml</param-value>
    	  </context-param>
     
    	  <listener>		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	  </listener>
     
    	  <servlet>
     
                <servlet-name>hibernateSpring</servlet-name>
     
                <servlet-class>
     
                      org.springframework.web.servlet.DispatcherServlet
     
                </servlet-class>
     
                <load-on-startup>1</load-on-startup>
     
          </servlet>
     
          <servlet-mapping>
     
                <servlet-name>hibernateSpring</servlet-name>
     
                <url-pattern>*.form</url-pattern>
     
          </servlet-mapping>
     
     
     
     
    </web-app>

    Histoire que le fichier web.xml soit valide selon le schema.. je pense pas qu'une invalidité provoque des problèmes de classNotFound mais essaie quand meme.
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  6. #6
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Citation Envoyé par Socrate93 Voir le message
    Le déploiement ne s'effectue pas du à cette balise :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <listener>
    			<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     
    </listener>

    malgré que la classe existe bien dans mon jar.
    Dans ton jar ou dans ton war?
    Et si dans ton war, ou cela?
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Hikage Voir le message
    Je doute que cela ait un rapport mais on sait jamais, change l'ordre :

    Histoire que le fichier web.xml soit valide selon le schema.. je pense pas qu'une invalidité provoque des problèmes de classNotFound mais essaie quand meme.
    J'ai déjà essayé et j'ai ré-essayé malheureusement pas de changement.

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par zekey Voir le message
    Dans ton jar ou dans ton war?
    Et si dans ton war, ou cela?
    La classe existe bien dans le jar spring-1.2.8.jar.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 124
    Points : 136
    Points
    136
    Par défaut
    le spring admet il un break?

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par craryb Voir le message
    le spring admet il un break?
    C'est quoi un break?

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Est ce qu'il ya quelqu'un qui a travaillé avec Spring et ça a marché ?

    Si oui est ce que je peut avoir les versions de Tomcat, JDK, spring, J2EE, et servlet ?

  12. #12
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Je te rassure, j'ai déjà réussi a faire fonctionne Spring

    Pour répondre a tes questions, dont je doute que cela t'aide bcp :

    Tomcat 5 / Tomcat 5.5
    JDK 1.4 / JDK 5
    Spring 1.2 / Spring 2.0
    J2EE 1.4
    servlet je sais mais celle du J2EE 1.4.


    Cela dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     <context-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/applicationContext.xml,
    							hibernate.cfg.xml</param-value>
    	  </context-param>
    Cela sous entends que ton fichier hibernate.cfg.xml est dans :

    <repertoire web app>
    -- hibernate.cfg.xml
    -- WEB-INF
    ----- applicaitonContext.xml
    ----- web.xml

    Donc au meme niveau que le répertoire WEB-INF ( et non pas dans le répertoire WEB-INF. Est-ce correct ?

    Encore une fois, je doute que cela provoque des ClassNotFoundException mais comme Tomcat par défaut n'est pas trop verbeux ..

    Simple question, saurai tu configurer log4j pour tomcat ? afin de pouvoir configurer les log de Spring a plus haut niveau et avoir plus d'info ?
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Hikage Voir le message

    Cela sous entends que ton fichier hibernate.cfg.xml est dans :

    <repertoire web app>
    -- hibernate.cfg.xml
    -- WEB-INF
    ----- applicaitonContext.xml
    ----- web.xml

    Donc au meme niveau que le répertoire WEB-INF ( et non pas dans le répertoire WEB-INF. Est-ce correct ?
    Mon fichier hibernate.cfg.xml est sous "src" (src/hibernate.cfg.xml).

    Citation Envoyé par Hikage Voir le message
    Encore une fois, je doute que cela provoque des ClassNotFoundException mais comme Tomcat par défaut n'est pas trop verbeux ..
    J'ai essayé avec JBoss 4.0 aussi mais la même chose

    Citation Envoyé par Hikage Voir le message
    Simple question, saurai tu configurer log4j pour tomcat ? afin de pouvoir configurer les log de Spring a plus haut niveau et avoir plus d'info ?
    Non je sais pas, j'aimerai bien le configurer . Alors si tu peux m'aider a le faire je serai reconnaissant

  14. #14
    Rédacteur
    Avatar de Hikage
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 177
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 177
    Points : 6 301
    Points
    6 301
    Par défaut
    Citation Envoyé par Socrate93 Voir le message
    Mon fichier hibernate.cfg.xml est sous "src" (src/hibernate.cfg.xml).
    Oui mais src c'est dans eclipse je suppose
    Tu n'as pas de répertoire src dans le fichier .war ?

    Si c'est bien dans src eclipse ( ou autre ide hein :p ), cela veut dire que le fichier hibernate est dans le classpath donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
     <context-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>/WEB-INF/applicationContext.xml,
    							classpath:hibernate.cfg.xml</param-value>
    	  </context-param>
    Hikage
    SCJP / SCWCD & SCWSJD Certified / Spring Framework Certified
    [Personal Web] [CV]

    F.A.Q Spring Framework - Participez !

  15. #15
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    J'ai essayé les 2 malheureusement rien n'a changé, d'ailleurs je crois que j'ai écrit avec classpath: ds le applicationContext.xml

    l'erreur se declenche lorsque le serveur ou le container web parse le fichier web.xml, c'est pour ça que l'erreur (qui d'ailleur liée à la balise du listener) parait lors du deploiement et non pas lors de l'execution. C'est ce que j'ai compri bien sur

  16. #16
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Je sais pas si c'est la bonne solution ou non mais jusqu'à mnt ça resoud mes problemes.

    j'ai changé la balise
    <listener>....</listener>

    par:

    <servlet>

    <servlet-name>context</servlet-name>

    <servlet-class>

    org.springframework.web.context.ContextLoaderServlet

    </servlet-class>

    <load-on-startup>1</load-on-startup>

    </servlet>

    et ça marche pour le moment

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Points : 15
    Points
    15
    Par défaut Merci
    Bonjour à tous ceux qui passeraient par ici.

    Je sais que je déterre un vieux topic mais il m'a permis de résoudre mon problème.

    Donc merci Socrate93 pour ta solution.


    Dr. Krusty.

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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