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

Format d'échange (XML, JSON...) Java Discussion :

Actualiser ou modifier un fichier xml en java


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut Actualiser ou modifier un fichier xml en java
    Salut,

    Je galère avec un problème depuis quelques temps.
    Dans mon code je crée un fichier xml que je remplis dynamiquement avec Marshal, le problème c'est que quand j'exécute mon code une autre fois, je modifie le fichier xml, je voudrais écraser l'ancien contenu et ajouter le nouveau.
    J'ai utilisé Delete() mais c'est toujours le même problème ! Est ce que c'est possible d'écraser l'ancien contenu ou de l'actualiser, tout cela avec du code java ?

    J'ai vraiment besoin de votre aide SVP !
    Merci !

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Oui, c'est possible. Donne ton code pour qu'on tente de trouver le problème.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Oui, c'est possible. Donne ton code pour qu'on tente de trouver le problème.
    Merci vraiment je suis bloquée à cause de ça.
    Voilà je travaille sur les web services spring ws, je developpe la aprtie client.
    voici le scénario:
    J'ai un formulaire de saisie, par exemple je veux rechrcher toutes les personnes qui pratiquent la langue française.
    je tape français dans mon champ texte, j'appuie sur valider, je récupère la valeur entrée,ensuite je génère avec jaxb mon fichier xml, jusque là tout va bien.
    j'envoie le fichier xml au web service il 'maffiche le resultat tout va bien.
    Le problème c'est que j'execute une autre fois mon code, j'affiche le formulaire, je tape anglais, il génère le ficheir xml avec le meme nom sauf qu'il envoit au web service l'ancien contenu du fichier, quand j'essaye d'ouvrir le fichier xml, j'obtiens:
    File has been changed on the file system.Do you want to load the changes?
    je dois l'actualiser manuellement.
    J'ai essayé de le supprimer mais toujours le meme probleme.
    bref voici mon code pour voir mieux clair:
    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
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    package client;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.StringReader;
    import java.io.StringWriter;
    import java.io.Writer;
     
     
    import javax.faces.context.FacesContext;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Marshaller;
    import javax.xml.transform.OutputKeys;
    import javax.xml.transform.Source;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import javax.xml.transform.stream.StreamSource;
     
     
    import org.springframework.core.io.ClassPathResource;
    import org.springframework.core.io.Resource;
     
    import org.springframework.ws.WebServiceMessage;
    import org.springframework.ws.client.core.WebServiceMessageCallback;
    import org.springframework.ws.client.core.WebServiceTemplate;
    import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
    import org.springframework.ws.soap.SoapMessage;
     
    import bean.Languebean;
    import bean.RecupBean;
     
    import stringToXmlFile.createFile;
     
    import ws.hr.com.schema.recherchel.CVRequest;
    import ws.hr.com.schema.recherchel.CVResponse;
    import ws.hr.com.schema.recherchel.ObjectFactory;
     
     
     
    public class WebServiceClient {
     
     
     
     
    	public String doRecupBean5() throws JAXBException, IOException, TransformerException {
     
    		Languebean lb = new Languebean();
     
    		FacesContext context = FacesContext.getCurrentInstance();
     
    		ObjectFactory factory=new ObjectFactory();
    		//Récupérer L'objet rempli de la page JSP
    		lb = (Languebean)context.getApplication().createValueBinding("#{langue}").getValue(context);	
     
    		System.out.println("---------");
    		System.out.println(lb.getCODLAN());
    		// Création du marshaller
     
     
    		CVRequest CVR=(CVRequest)(factory.createCVRequestType());
     
    		CVR.setLangueRech(lb.getCODLAN());
     
     
    		JAXBContext contextJC = JAXBContext.newInstance("ws.hr.com.schema.recherchel"); 
    		Marshaller marshaller = contextJC.createMarshaller(); 
    		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);   
     
    		marshaller.marshal(CVR, System.out); 
    		// otherwise file output   
     
     
    //		String fileDeleted="C:/MyWorkspace/JSF/src/client/out.xml";
    //		File f = new File(fileDeleted);
     
    //		if(filedeleted.exists()){
    //		filedeleted.delete();
    //		
    //		}
    //		if(!filedeleted.exists()){
    //			System.out.println("le fichier a été suprrimé");
    //		}
    		   File file=new File("C:/MyWorkspace/JSF/src/client/out.xml");
     
    		marshaller.marshal(CVR,file );
     
    		getData();	
     
     
     
     
     
    		/*****************************************************************************************/
     
    		return "valider";
     
    	}
     
    	public void getData() throws TransformerException{
    		Resource resource = new ClassPathResource("/client/out.xml");
     
    		System.out.println("1");
    		WebServiceTemplate template = new WebServiceTemplate();
    		StreamSource source = null;
    		try {
    			source = new StreamSource(resource.getInputStream());
    			System.out.println("2");
    		} catch (IOException e) {
    			e.printStackTrace();
    			System.out.println("Errror");
    		}
    		StreamResult result = new StreamResult(System.out);
     
    		System.out.println("3");
    		template.sendSourceAndReceiveToResult("http://localhost:8080/spring-wsTest/rechercherLangueService/",source, result);
    		/********************************************************/
     
     
     
    	}
     
     
    }
    Voici le fichier out.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <CVRequest xmlns="http://com.hr.ws/schema/rechercheL">
        <LangueRech>Français</LangueRech>
    </CVRequest>
    là il m'affiche le resultat pour français, mais si j'execute une autre fois avec "anglais", il m'affiche toujours le resultat de "français" si j'ouvre le fichier et je fais actualiser il m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <CVRequest xmlns="http://com.hr.ws/schema/rechercheL">
        <LangueRech>Anglais</LangueRech>
    </CVRequest>

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Peut-être que le chemin absolu "/client/out.xml" ne désigne pas le même fichier que "C:/MyWorkspace/JSF/src/client/out.xml" ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Peut-être que le chemin absolu "/client/out.xml" ne désigne pas le même fichier que "C:/MyWorkspace/JSF/src/client/out.xml" ?
    Nonon c'est juste quand tu specifies le classpath il faut mettre le chemin dans le projet et dans new File il faut mettre le chemin absolu!!

Discussions similaires

  1. [JDOM] Modifier un fichier XML dans java avec JDOM
    Par FatmaFafa dans le forum Format d'échange (XML, JSON...)
    Réponses: 10
    Dernier message: 24/07/2012, 15h44
  2. [DOM] java.lang.ClassCastException dans un code qui modifie un fichier XML
    Par RouRa22 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 21/12/2007, 16h21
  3. [DOM] Ecriture d'un fichier XML en java
    Par fidififouille dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 12/05/2004, 09h32
  4. [DOM] est ce qu'on peut créer un fichier xml en java ?
    Par miloud dans le forum Format d'échange (XML, JSON...)
    Réponses: 9
    Dernier message: 21/01/2004, 10h40

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