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 :

Les données ne s'ajoutent pas dans le fichier XML


Sujet :

Servlets/JSP Java

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut Les données ne s'ajoutent pas dans le fichier XML
    Bonjour,
    J'ai une servlet qui récupérè les donnée d'un formulaire (qui fonctionne) et qui les ajoutes dans un fichier xml, mais le fichier xml ne se crée pas
    La servlet appelle un fichier java qui ajoute les données xml.
    Je n'ai pas de message d'erreur, je n'ai qu'une page blanche après avoir entrée les données sur la page web

    la servlet

    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
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		String nom,prenom,email,telPortable,telFixe,commentaire;
     
    		response.setContentType("text/plain");
    		//PrintWriter pw = response.getWriter(); 
     
    		nom = request.getParameter("nom");
    		prenom = request.getParameter("prenom");
    		email = request.getParameter("email");
    		telPortable = request.getParameter("tel_portable");
    		telFixe = request.getParameter("tel_fixe");
    		commentaire = request.getParameter("commentaire");
     
     
    		new Ajouter(nom,prenom,email,telPortable,telFixe,commentaire); 
     
     
    	}
    Le fichier java qui ajoute les données dans le fichier 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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    package packageTreatment;
     
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.Parent;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.XMLOutputter;
     
    public class Ajouter {
     
    	static String nom;
    	static String prenom; 
    	static String email;
    	static String telPortable;
    	static String telFixe;
    	static String commentaire ;
     
    	public Ajouter(String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire)
    	{
    		nom = parNom ;
    		prenom = parPrenom ; 
    		email = parEmail;
    		telPortable = parTelPortable;
    		telFixe = parTelFixe;
    		commentaire = parCommentaire;
     
    	}
     
    	public static void main(String[] args) throws Exception 
    	{
    		Document document = Ajouter.ajout("WebContent/annuaire.xml");
     
    		enregistreFichier(document,"WebContent/NEWannuaire.xml");
     
    	}
     
     
    	static Document ajout(String fileName) throws JDOMException, IOException
    	{ 
    		Document document = null ;
    		File file = new File(fileName);		
    		SAXBuilder builder = new SAXBuilder(); 
     
    		document = builder.build(file);
     
     
     
    		//----------------- Création des éléments ------------------ \\
     
    		Element personne = new Element("personne");
    		personne.setAttribute("id",nom) ;
     
    		Element varNom = new Element("nom");
    		varNom.setText(nom);
     
    		Element varPrenom = new Element("prenom");
    		varNom.setText(prenom);
     
    		Element varEmail = new Element("email");
    		varNom.setText(email);
     
    		Element varTelPortable = new Element("telPortable");
    		varNom.setText(telPortable);
     
    		Element varTelFixe = new Element("telFixe");
    		varNom.setText(telFixe);
     
    		Element varCom = new Element("commentaire");
    		varNom.setText(commentaire);
     
    		// ----------------- Création de la hiérarchie ---------------- \\
     
    		personne.addContent(varNom);
    		personne.addContent(varPrenom);
    		personne.addContent(varEmail);
    		personne.addContent(varTelPortable);
    		personne.addContent(varTelFixe);
    		personne.addContent(varCom);
     
    		document.getRootElement().addContent(personne);
     
     
    		return document ;
     
    	}
     
        static void enregistreFichier(Document document,String fichier) throws Exception
        {
        	XMLOutputter sortie = new XMLOutputter();
        	sortie.output(document, new FileOutputStream(fichier));
        }
     
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Il faudrait revoir un peu les bases : le programme ne fait que ce que tu lui demandes de faire. Ni plus. Ni moins.

    Quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Ajouter(nom,prenom,email,telPortable,telFixe,commentaire);
    ; ça exécute le constructeur de Ajouter, soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public Ajouter(String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire)
    	{
    		nom = parNom ;
    		prenom = parPrenom ; 
    		email = parEmail;
    		telPortable = parTelPortable;
    		telFixe = parTelFixe;
    		commentaire = parCommentaire;
     
    	}
    Ni plus. Ni moins. Donc ça ne fait que mettre les valeurs que tu passes en paramètre dans les variables statiques. Et rien de plus. Il faut appeler la méthode qui fait l'ajout dans le fichier xml, pour que ça le fasse. Bon, là, tu as bidouillé un truc avec des variables statiques et une méthode main() qui n'a d'intérêt que pour lancer un programme, mais dans ton contexte, une simple méthode de sauvegarde avec des variables locales feraient la sauvegarde sans bidouille avec des statiques, qui te poseront problème en cas d'accès multiple (à priori une application web est utilisable par plus d'une personne à la fois.

    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    package packageTreatment;
     
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.Parent;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.XMLOutputter;
     
    public class Ajouter {
     
     
    	public static void ajouter(String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire)
    	{
    		Document document = Ajouter.ajout("WebContent/annuaire.xml", parNom, parPrenom, parEmail, parTelPortable,  parTelFixe, parCommentaire);
     
    		enregistreFichier(document,"WebContent/NEWannuaire.xml");
     
    	}
     
     
    	private static Document ajout(String fileName, String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws JDOMException, IOException
    	{ 
    		Document document = null ;
    		File file = new File(fileName);		
    		SAXBuilder builder = new SAXBuilder(); 
     
    		document = builder.build(file);
     
     
     
    		//----------------- Création des éléments ------------------ \\
     
    		Element personne = new Element("personne");
    		personne.setAttribute("id",nom) ;
     
    		Element varNom = new Element("nom");
    		varNom.setText(nom);
     
    		Element varPrenom = new Element("prenom");
    		varNom.setText(prenom);
     
    		Element varEmail = new Element("email");
    		varNom.setText(email);
     
    		Element varTelPortable = new Element("telPortable");
    		varNom.setText(telPortable);
     
    		Element varTelFixe = new Element("telFixe");
    		varNom.setText(telFixe);
     
    		Element varCom = new Element("commentaire");
    		varNom.setText(commentaire);
     
    		// ----------------- Création de la hiérarchie ---------------- \\
     
    		personne.addContent(varNom);
    		personne.addContent(varPrenom);
    		personne.addContent(varEmail);
    		personne.addContent(varTelPortable);
    		personne.addContent(varTelFixe);
    		personne.addContent(varCom);
     
    		document.getRootElement().addContent(personne);
     
     
    		return document ;
     
    	}
     
        private static void enregistreFichier(Document document,String fichier) throws Exception
        {
        	XMLOutputter sortie = new XMLOutputter();
        	sortie.output(document, new FileOutputStream(fichier));
        }
     
    }
    Pour commencer. Que tu appelles dans ta servlet comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ajouter.ajouter(nom,prenom,email,telPortable,telFixe,commentaire);
    Ensuite 3 problèmes, au moins :

    • Le chemin n'est pas bon : il me semble t'avoir parler de ça dans une autre discussion,
    • Ensuite, tu lis un fichier, et tu écris dans un autre : si tu ajoutes 2 utilisateurs, le premier sera perdu (puisque tu repars d'un fichier qui n'est jamais modifié (il faut à la fin remplacer l'ancien fichier par le nouveau : voir renameTo().
    • Si plusieurs personnes ajoutent des utilisateurs en même temps, l'un d'eux ouvrira le fichier pour écrire dedans et les autres se feront jeter... (à régler tout simplement par synchronized)


    Ah, j'oubliais : si tu as une page blanche en réponse c'est parce que ta servlet genère une réponse de type plain/text dans laquelle tu n'écris rien.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    Pour le chemin je ne comprends pas très bien , j'ai mis la même chose que dans l'autre discussion mais le chemin étant un string il m'affiche des erreurs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	public static void ajouter(String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws Exception 
    	{
    		SAXBuilder sxb = new SAXBuilder(); 
    		Document doc = sxb.build(new File(request.getServletContext().getRealPath("annuaire.xml"));
     
    		Document document = Ajouter.ajout(doc,parNom, parPrenom, parEmail, parTelPortable,  parTelFixe, parCommentaire);
     
    		enregistreFichier(document,doc);
     
    	}

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    C'est bien ce que je disais : il faut reprendre les bases !

    C'est quoi request dans la méthode ajouter ? C'est quelque chose qui n'a aucun sens pour Java, ou, à la limite une variable qui n'existe pas. Il faut passer l'instance de request, ou de ServletContext en paramètre de la méthode ajouter, pour pouvoir appeler une de ses méthodes dans la méthode ajouter().
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Mais pour le chemin, il faut que ce soit un string là c'est un document pour les méthodes ajout et enregistreFichier.

    fichier Ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	public static void ajouter(String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire, HttpServletRequest request) throws Exception 
    	{
    		SAXBuilder sxb = new SAXBuilder(); 
    		Document doc = sxb.build(new File(request.getServletContext().getRealPath("annuaire.xml")));
     
    		Document document = Ajouter.ajout(doc,parNom, parPrenom, parEmail, parTelPortable,  parTelFixe, parCommentaire);
     
    		enregistreFichier(document,doc);
     
    	}
    fichier Servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    		...
    		try {
    			Ajouter.ajouter(nom,prenom,email,telPortable,telFixe,commentaire, request);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Pour le nom du fichier, certes, mais pas son chemin absolu, que tu ne peux connaitre forcément à l'avance, puis qu'il dépend du nom du dossier de l'application web et du dossier d'installation du serveur (voir de la structure des dossiers en fonction du serveur).

    D'ailleurs, pour des fichiers qu'on modifie, il vaut mieux les stocker dans un répertoire à part du dossier de l'application web (lors d'un redéploiement, les fichiers dans webcontent seront supprimés). : ainsi tu te prévois un dossier là où tu veux ton disque dont le chemin absolu est connu de ton application (éventuellement paramétrable), et tu n'as plus besoin de traiter le path en relatif par rapport à quoique ce soit (context de l'application web ou dossier de lancement de l'application).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,
    je n'arrive toujours pas à écrire dans un fichier.

    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
     
    package packageTreatment;
     
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.Parent;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.XMLOutputter;
     
    public class Ajouter {
     
    	public static void ajouter(HttpServletRequest request, String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws Exception 
    	{
    		//SAXBuilder sxb = new SAXBuilder();
    		Document document = Ajouter.ajout(request,"annuaire.xml",parNom, parPrenom, parEmail, parTelPortable,  parTelFixe, parCommentaire);
     
    		enregistreFichier(request,document,"annuaire.xml");
     
    	}
     
     
    	static Document ajout(HttpServletRequest request,String fileName, String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws JDOMException, IOException
    	{ 
     
    		Document document = null ; 
    		//File file = new File(fileName);		
    		SAXBuilder builder = new SAXBuilder(); 
     
    		document = builder.build(new File(request.getServletContext().getRealPath(fileName)));
     
     
     
    		//----------------- Création des éléments ------------------ \\
     
    		Element personne = new Element("personne");
    		personne.setAttribute("id",parPrenom+"||"+parNom) ;
     
    		Element varNom = new Element("nom");
    		varNom.setText(parNom);
     
    		Element varPrenom = new Element("prenom");
    		varNom.setText(parPrenom);
     
    		Element varEmail = new Element("email");
    		varNom.setText(parEmail);
     
    		Element varTelPortable = new Element("telPortable");
    		varNom.setText(parTelPortable);
     
    		Element varTelFixe = new Element("telFixe");
    		varNom.setText(parTelFixe);
     
    		Element varCom = new Element("commentaire");
    		varNom.setText(parCommentaire);
     
    		// ----------------- Création de la hiérarchie ---------------- \\
     
    		personne.addContent(varNom);
    		personne.addContent(varPrenom);
    		personne.addContent(varEmail);
    		personne.addContent(varTelPortable);
    		personne.addContent(varTelFixe);
    		personne.addContent(varCom);
     
    		document.getRootElement().addContent(personne);
     
     
    		return document ;
     
    	}
    	/*
    	private void addElementAfter(Element element, String elementName, String textValue) {
    		Parent parent = element.getParent();
    		Element newChild = new Element(elementName);
    		newChild.setText(textValue);
    		parent.addContent(parent.indexOf(element)+1, newChild);
    	}
    	*/
     
        static void enregistreFichier(HttpServletRequest request, Document document,String fichier) throws Exception
        {
        	XMLOutputter sortie = new XMLOutputter();
        	SAXBuilder builder = new SAXBuilder(); 
        	document = builder.build(new File(request.getServletContext().getRealPath(fichier)));
        	sortie.output(document, new FileOutputStream(fichier));
        }
     
    }
    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
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		String nom,prenom,email,telPortable,telFixe,commentaire;
     
    		//response.setContentType("text/xml");
    		//PrintWriter pw = response.getWriter(); 
     
    		nom = request.getParameter("nom");
    		prenom = request.getParameter("prenom");
    		email = request.getParameter("email");
    		telPortable = request.getParameter("tel_portable");
    		telFixe = request.getParameter("tel_fixe");
    		commentaire = request.getParameter("commentaire");
     
     
    		try {
    			Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    	}

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Tu ne fermes pas le FileInputStream dans enregistreFichier.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    j'ai rajouté close() dans enregistreFichier mais ca ne marche toujours pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        static void enregistreFichier(HttpServletRequest request, Document document,String fichier) throws Exception
        {
        	XMLOutputter sortie = new XMLOutputter();
        	SAXBuilder builder = new SAXBuilder(); 
        	document = builder.build(new File(request.getServletContext().getRealPath(fichier)));
     
        	FileOutputStream file = new FileOutputStream(fichier) ;
        	sortie.output(document, file);
        	file.close();
     
     
        }

  10. #10
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Déjà, on fait plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try(FileOutputStream file = new FileOutputStream(fichier) ) {
        	sortie.output(document, file);
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       	FileOutputStream file = null;
    try {
    file = new FileOutputStream(fichier) ;
        	sortie.output(document, file);
    }
    finally {
        if ( file!=null ) {
        	file.close();
       }
    }
    Ensuite "ça marche pas", c'est vague... qu'est-ce qu'il se passe ? Y-a-t-il des messages d'erreurs (peut-être ne regarde-tu pas au bon endroit (la console de ton serveur) - enlève le catch dans la jsp et tu auras la stacktrace dans ta page web) ? Le fichier est-il créé mais vide, ou pas du tout ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  11. #11
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Il n'y avait pas de message d'erreur juste une page blanche
    Quand j’enlève catch dans la jsp , il me met une erreur en surlignant ,
    Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire); erreur: handled exception type Exception

    Quand je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       	FileOutputStream file = null;
    try {
    file = new FileOutputStream(fichier) ;
        	sortie.output(document, file);
    }
    finally {
        if ( file!=null ) {
        	file.close();
       }
    dans la console j'ai cette erreur
    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
    37
    38
    39
    40
    41
    42
    43
     
    java.io.FileNotFoundException: C:\Users\Idriss\Desktop\Workstation\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Annuaire\NewAnnuaire.xml (Le fichier spécifié est introuvable)
    	at java.io.FileInputStream.open(Native Method)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
    	at sun.net.www.protocol.file.FileURLConnection.getInputStream(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    	at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(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 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    	at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
    	at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
    	at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:264)
    	at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1116)
    	at packageTreatment.Ajouter.enregistreFichier(Ajouter.java:91)
    	at packageTreatment.Ajouter.ajouter(Ajouter.java:24)
    	at packageTreatment.ServletAjouter.doGet(ServletAjouter.java:47)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Unknown Source)

  12. #12
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pitchu Voir le message
    Il n'y avait pas de message d'erreur juste une page blanche
    Quand j’enlève catch dans la jsp , il me met une erreur en surlignant ,
    Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire); erreur: handled exception type Exception
    Ah, il me semblait me souvenir que les exceptions étaient relancées dans une JSP ; dans ce cas, au lieu d'enlever le catch, met à la fin un throw new RuntimeException(e).
    Citation Envoyé par pitchu Voir le message
    Quand je rajoute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
       	FileOutputStream file = null;
    try {
    file = new FileOutputStream(fichier) ;
        	sortie.output(document, file);
    }
    finally {
        if ( file!=null ) {
        	file.close();
       }
    dans la console j'ai cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    java.io.FileNotFoundException: C:\Users\Idriss\Desktop\Workstation\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Annuaire\NewAnnuaire.xml (Le fichier spécifié est introuvable)
    	at java.io.FileInputStream.open(Native Method)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	at java.io.FileInputStream.<init>(Unknown Source)
    	...
    Là, on te dit que tu accèdes un fichier qui s'appelle NewAnnuaire.xml qui n'existe pas. Dans tes derniers codes, tous les fichiers s'appelle Annuaire.xml (la source et la destiination). Il y avait bien au tout début de ta question un NEWannuaire,.xml, mais tu ne le créé plus ce fichier, à priori, donc normal qu'il n'existe pas.
    En plus, il est dans un dossier Annnuaire, alors que Annuaire.xml, non...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  13. #13
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Comme vous l'aviez dit, j'avais crée un dossier Annuaire au placer les fichiers modifiés. Mais comme j'arrivais pas à ajouté les données ^^, j'ai supprimé le dossier Annuaire et remis annuaire.xml dans le dossier WebContent, là je n'ai plus le dossier Annuaire, je ne sais pas pourquoi il me le met dans l'erreur.



    J'ai rajouté throw new RuntimeException(e), je n'ai plus de message d'erreur de console ou du serveur mais les données ne se sont pas ajouté au fichier annuaire.xml .


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		try {
    			Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			throw new RuntimeException(e);
     
    		}

  14. #14
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par pitchu Voir le message
    je ne sais pas pourquoi il me le met dans l'erreur.
    C'est-à-dire, il met quoi dans l'erreur ? et c'est quoi "l'erreur" ?

    Sinon, tu dis que tu as supprimé le dossier annuaire, mais tu continues à lire NewAnnuaire.xml et à écrire dans Annuaire.xml ? Si oui, et que tu n'as plus d'erreur, c'est normal que tu ne vois pas NewAnnuaire.xml se modifier, puisque tu écris dans Annuaire.xml.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  15. #15
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Excusez-moi j'ai oublié de vous montrer les modifications apporter

    Le fichier servlet

    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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    package packageTreatment;
     
    import java.io.IOException;
    import java.io.PrintWriter;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    /**
     * Servlet implementation class ServletAjouter
     */
    @WebServlet("/ServletAjouter")
    public class ServletAjouter extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
        /**
         * @see HttpServlet#HttpServlet()
         */
        public ServletAjouter() {
            super();
            // TODO Auto-generated constructor stub
        }
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		String nom,prenom,email,telPortable,telFixe,commentaire;
     
    		//response.setContentType("text/xml");
    		//PrintWriter pw = response.getWriter(); 
     
    		nom = request.getParameter("nom");
    		prenom = request.getParameter("prenom");
    		email = request.getParameter("email");
    		telPortable = request.getParameter("tel_portable");
    		telFixe = request.getParameter("tel_fixe");
    		commentaire = request.getParameter("commentaire");
     
     
    		try {
    			Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			throw new RuntimeException(e);
     
    		}
     
    		RequestDispatcher dis = request.getRequestDispatcher("Annuaire.jsp");
    		dis.forward(request, response);
     
     
     
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	}
     
    }
    le fichier Ajouter.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
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
     
    package packageTreatment;
     
     
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
     
    import javax.servlet.http.HttpServletRequest;
     
    import org.jdom2.Document;
    import org.jdom2.Element;
    import org.jdom2.JDOMException;
    import org.jdom2.Parent;
    import org.jdom2.input.SAXBuilder;
    import org.jdom2.output.XMLOutputter;
     
    public class Ajouter {
     
    	public static void ajouter(HttpServletRequest request, String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws Exception 
    	{
    		//SAXBuilder sxb = new SAXBuilder();
    		Document document = Ajouter.ajout(request,"annuaire.xml",parNom, parPrenom, parEmail, parTelPortable,  parTelFixe, parCommentaire);
     
    		enregistreFichier(request,document,"annuaire.xml");
     
    	}
     
     
    	static Document ajout(HttpServletRequest request,String fileName, String parNom, String parPrenom, String parEmail, String parTelPortable, String parTelFixe, String parCommentaire) throws JDOMException, IOException
    	{ 
     
    		Document document = null ; 
    		//File file = new File(fileName);		
    		SAXBuilder builder = new SAXBuilder(); 
     
    		document = builder.build(new File(request.getServletContext().getRealPath(fileName)));
     
     
     
    		//----------------- Création des éléments ------------------ \\
     
    		Element personne = new Element("personne");
    		personne.setAttribute("id",parPrenom+"||"+parNom) ;
     
    		Element varNom = new Element("nom");
    		varNom.setText(parNom);
     
    		Element varPrenom = new Element("prenom");
    		varNom.setText(parPrenom);
     
    		Element varEmail = new Element("email");
    		varNom.setText(parEmail);
     
    		Element varTelPortable = new Element("telPortable");
    		varNom.setText(parTelPortable);
     
    		Element varTelFixe = new Element("telFixe");
    		varNom.setText(parTelFixe);
     
    		Element varCom = new Element("commentaire");
    		varNom.setText(parCommentaire);
     
    		// ----------------- Création de la hiérarchie ---------------- \\
     
    		personne.addContent(varNom);
    		personne.addContent(varPrenom);
    		personne.addContent(varEmail);
    		personne.addContent(varTelPortable);
    		personne.addContent(varTelFixe);
    		personne.addContent(varCom);
     
    		document.getRootElement().addContent(personne);
     
     
    		return document ;
     
    	}
    	/*
    	private void addElementAfter(Element element, String elementName, String textValue) {
    		Parent parent = element.getParent();
    		Element newChild = new Element(elementName);
    		newChild.setText(textValue);
    		parent.addContent(parent.indexOf(element)+1, newChild);
    	}
    	*/
     
        static void enregistreFichier(HttpServletRequest request, Document document,String fichier) throws Exception
        {
        	XMLOutputter sortie = new XMLOutputter();
        	SAXBuilder builder = new SAXBuilder(); 
        	document = builder.build(new File(request.getServletContext().getRealPath(fichier)));
     
           	FileOutputStream file = null;
           	try {
           	file = new FileOutputStream(fichier) ;
           	    	sortie.output(document, file);
           	}
           	finally {
           	    if ( file!=null ) {
           	    	file.close();
           	   }
           	}
     
     
        }
     
    }
    donc je n'ai aucune erreur mais rien ne s'écrit dans le fichier annuaire.xml

  16. #16
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    1. je n'ai jamais dit de faire throw new RuntimeException(e) dans la servlet , mais dans la JSP, pour que tu aies la trace dans ton navigateur. Dans la servlet, je ne sais pas ce que le serveur en fait : s'il y a un handler qui la trace dans la console, ou dans le log du tomcat, ou quoi...
    2. Dans enregistrer, tu fais :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
       
          	document = builder.build(new File(request.getServletContext().getRealPath(fichier)));
      Ce qui recharge le fichier "annuaire.xml" dans document, supprimant ainsi toutes les modifications qui ont été faites dans le document.

      Vire cette ligne : le document est passé en paramètre de la méthode, et c'est celui-là qui doit être enregistré (et qui le sera si tu enlèves la ligne ci-dessus)
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  17. #17
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    le throw new RuntimeException(e) je ne vois pas trop où l'ajouter
    j'ai un fichier AfficheXML.jsp qui affiche le contenu du fichier xml et Annuaire.jsp qui crée le formulaire et appelle AfficheXML.jsp
    j'ai mis throw new RuntimeException(e) dans le fichier AfficheXML.jsp et j'ai toujours rien

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
     
    <%
     
    Document document = null ; 
    Element racine;
    Iterator<Element> i;
    List<Element> personne ;
    SAXBuilder sxb = new SAXBuilder(); 
    try
            {
                    
                    //document = sxb.build(new File("annuaire.xml"));
                    document = sxb.build(new File(request.getServletContext().getRealPath("annuaire.xml")));
            }
    catch(Exception e){
            throw new RuntimeException(e); //<------------------------------------------------
    } ; 
    racine = document.getRootElement();
     
    personne = racine.getChildren("personne");
    i = personne.iterator();
    %>
     
    <table border="1">
    	<caption> CONTACTS </caption>
     
    		<tr>
    			<th> prenom </th>
    			<th> nom </th>
    			<th> adresse </th>
    			<th> email </th>
    			<th> numFixe </th>
    			<th> numPortable </th>
    			<th> commentaire </th>
    		</tr>
     
    <% 
    while(i.hasNext())
    {
            Element courant = (Element)i.next();
            
    %>
    		<tr>
    				<td> <% out.println(courant.getChild("prenom").getText()); %> </td>
    				<td> <% out.println(courant.getChild("nom").getText()); %> </td>
    				<td> <% out.println(courant.getChild("adresse").getText()); %> </td>
    				<td> <% out.println(courant.getChild("email").getText()); %> </td>
    				<td> <% out.println(courant.getChild("numFixe").getText()); %> </td>
    				<td> <% out.println(courant.getChild("numPortable").getText()); %> </td>
    				<td> <% out.println(courant.getChild("commentaire").getText()); %> </td>
    		</tr>  
     <%
    }
    %>
    </table>
    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
     
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
     
    		String nom,prenom,email,telPortable,telFixe,commentaire;
     
    		//response.setContentType("text/xml");
    		//PrintWriter pw = response.getWriter(); 
     
    		nom = request.getParameter("nom");
    		prenom = request.getParameter("prenom");
    		email = request.getParameter("email");
    		telPortable = request.getParameter("tel_portable");
    		telFixe = request.getParameter("tel_fixe");
    		commentaire = request.getParameter("commentaire");
     
     
    		try {
    			Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
     
    		}
     
    		//RequestDispatcher dis = request.getRequestDispatcher("Annuaire.jsp");
    		//dis.forward(request, response);
     
     
     
    	}

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch (Exception e) {
    			// TODO Auto-generated catch block
     
    		}
    Triple baffe, coup de pied circulaire et fessée monumentale. Tu commence par retirer ce bout de code qui se résume à dire à l a JVM "quel que soit le problème, ta gueule" et traiter correctement ton exception. Tu te demande où mettre le throw new RuntimeException, ben c'est un bon endroit.

  19. #19
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Quand j’enlève catch dans la jsp , il me met une erreur en surlignant ,
    Ajouter.ajouter(request,nom,prenom,email,telPortable,telFixe,commentaire); erreur: handled exception type Exception

  20. #20
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    J'ai dit à l'origine que, pour voir la stacktrace d'une éventuelle exception dans ton navigateur, il fallait que tu remplaces ton e.printStackTrace(); par throw new RuntimeException(e); dans la JSP. Personne n'a parlé de la servlet. Tu l'as fait dans la servlet : je t'ai dit que c'était pas là que j'avais dit de le faire : c'était sous-entendu que tu devais au moins remettre ce qu'il y avait avant, pas que tu le supprimes purement et simplement en laissant le catch vide. Et @Tchize_ ne t'as pas dit de supprimer le catch, mais de remettre le throw new Runtime(e), vu que le catch était vide, alors autant mettre ça plutôt qu'il soit vide (parce que en cas d'exception, tu ne peux pas le savoir). Mais à la limite peu importe, le point important dans ma réponse c'était l'autre : le document que tu recharges !
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/06/2012, 00h23
  2. Réponses: 1
    Dernier message: 13/04/2012, 14h51
  3. Réponses: 1
    Dernier message: 10/08/2009, 10h21
  4. Les données ne s'affiche pas dans RaveReports
    Par savoir dans le forum Rave
    Réponses: 2
    Dernier message: 12/02/2008, 15h47
  5. toute les donnée ne s'inscrivent pas dans ma table paradox
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 27/06/2006, 22h11

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