Bonjour à tous,

J'utilise le protocol Buffer de google pour transmettre des données en binaire. En effet, je transmets à ma servlet, depuis ma JSP, mon login, donc la servlet récupere bien les paramètres de la requête, et construit bien mon object Protocol Buffer. En revanche, j'ai envie de renvoyer cet objet au client, soit en streaming (OutputStream + PrintWriter) soit en fichier binaire. Voici mon code:

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
 
@SuppressWarnings("unchecked")
	protected final void doPost(HttpServletRequest request, HttpServletResponse response)  
	throws ServletException, IOException {
		HttpSession session = request.getSession();
		metaKPIData = MetaKPIData.newBuilder();
		String applicationName = request.getParameter("application");
		String param = request.getParameter("arrayAjax");
		//get all sources
		List<SourceDto> sourceDtos = this.sourceComponent.getHostNamesForApplication(applicationName);
		ArrayList<SourceDto> sourcesForSpecificSensors = new ArrayList<SourceDto>();
		response.setHeader("Content-Type", "application/csv-tab-delimited-table");
		response.setHeader("Content-disposition", "filename="+applicationName+".");
//		List<SensorDto> sensorDtos = sensorComponent.getSensorSource(sourcesForSpecificSensors, applicationName);
		//String which contains the selected Sources IDs
		String str[]=param.split(",");
		if(param!=""){
			for(SourceDto sdtos : sourceDtos)
			{
				for(int i=0;i<str.length;i++)
				{
					int Id = Integer.parseInt(str[i]);
					if(sdtos.getSourceId() == Id)
					{
						sourcesForSpecificSensors.add(sdtos);
						sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Source.Builder source = sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Source.newBuilder();
						source.setApplication(applicationName).setHost(sdtos.getHost()).setLogin("").setVersion("");
						sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Sensors.Builder sensors = sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Sensors.newBuilder();
						sensors.setDate(16546531);
						sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Sensor.Builder sensor = sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Sensor.newBuilder();
						sensor.setName("");
						sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Data.Builder data = sgcib.ged.ebts.arbkpi.core.definition.pb.MetaKPIDataPB.Data.newBuilder();
						data.setDate(16546531).setValue((float) 3.011);
						source.addSensors(sensors.addSensor(sensor.addData(data)));
//						List<Sensors> sensors = source.getSensorsList();
						metaKPIData.addSource(source);
// a ce niveau là, l'objet est bien fait et est prêt à être transferer au client.
 
					}
				}
			}
		}
Je ne sais pas ce que je peux faire pour renvoyer l'objet au client....

Merci d'avance pour votre aide.