Bonjour;
Voici le code de mon client spring ws
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 client;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.StringReader;
 
 
import javax.faces.context.FacesContext;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.transform.TransformerException;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
 
import metier.Languebean;
import metier.RecupBean;
 
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 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 {
 
		Languebean lb = new Languebean();
 
		FacesContext context = FacesContext.getCurrentInstance();
 
		//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
		JAXBContext contextJC = JAXBContext.newInstance("ws.hr.com.schema.recherchel"); 
		Marshaller marshaller = contextJC.createMarshaller(); 
		ObjectFactory factory=new ObjectFactory(); 
		CVRequest CVR=(CVRequest)(factory.createCVRequestType());
		CVR.setLangueRech(lb.getCODLAN());
 
 
		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);   
 
		marshaller.marshal(CVR, System.out); 
		// otherwise file output   
		File file=new File("C:/MyWorkspace/JSF/src/client/out.xml"); // je stocke mes données dans out.xml que je vais envoyer à l'entrée du webservice
		marshaller.marshal(CVR,file );
 
 
 
		getData();
 
		/*****************************************************************************************/
 
		return "valider";
 
	}
	// j'envoie le fichier out.xml à la source du webservice
	public void getData(){
		Resource resource = new ClassPathResource("/client/out.xml");
 
 
		WebServiceTemplate template = new WebServiceTemplate();
		StreamSource source = null;
		try {
			source = new StreamSource(resource.getInputStream());
 
		} 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);
 
	}
 
 
}
Le problème c'est que quand je teste une première fois, il m'affiche le resultat correct, quand je teste une deuxième fois, il n'ecrase pas le contenu du fichier, il execute avec les anciennes valeurs stockées dans out.xml, quand j'essaye d'ouvrir le fichier out.xml il me demande "do you want to load the change".
Ya t'il un moyen de rafraichir automatiquement le contenu du ficheir ou avez vous une autre idée pour envoyer le fichier au web service!