Redirection interne d'une requete http

kncwiller Messages postés 2 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Salut,
actuellement je travaille sur une application web avec google app engine pour java.
j'ai expose un service qui reçoit des requetes Http Get via l'objet HttpServletRequest et doit retourner une reponse XML. le truc c'est que avant de retourner la reponse je dois faire une redirection interne vers un controleur spring pour effectuer un traitement.
ci-dessous mon code mais j'ai toujours une exception IOException.

httpInternalClient=new DefaultHttpClient();
		//String uri="http://www.abyster.com/MobileMoney/transfert.do";
		String uri="http://www.abyster.com/MobileMoney/transfert.do";
		HttpPost httpPost=new HttpPost(uri);
		List<NameValuePair> postParameters=new ArrayList<NameValuePair>();
		postParameters.add(new BasicNameValuePair("ab_amount",(String)entity.getProperty("amount")));
		postParameters.add(new BasicNameValuePair("ab_amountTTC",(String) entity.getProperty("amount")));
		postParameters.add(new BasicNameValuePair("ab_commission",(String) entity.getProperty("charges")));
		postParameters.add(new BasicNameValuePair("ab_countryCode", (String)entity.getProperty("countrycode")));
		postParameters.add(new BasicNameValuePair("ab_currency",(String) entity.getProperty("currency")));
		postParameters.add(new BasicNameValuePair("ab_fee", (String)entity.getProperty("charges")));
		postParameters.add(new BasicNameValuePair("ab_msisdnReceiver",(String) entity.getProperty("receiver")));
		postParameters.add(new BasicNameValuePair("ab_msisdnSender",(String) entity.getProperty("sender")));
		postParameters.add(new BasicNameValuePair("ab_operatorNewMMBalance",(String) entity.getProperty("balance")));
		postParameters.add(new BasicNameValuePair("ab_operatorTransactionId",(String) entity.getProperty("trxID")));
		
		try {
			httpPost.setEntity(new UrlEncodedFormEntity(postParameters));
			httpPost.setHeader("Content-Type","application/x-www-form-urlencoded");
			HttpResponse response= httpInternalClient.execute(httpPost);
			dService.delete(key);
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}


N.B: je n'ai pas accès à l'object HttpServletResponse depuis ma methode.

je ne sais pas si quelqu'un a une idée de comment m'y prendre.
merçi d'avance pour vos réponses.

2 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Bonjour,

Pourquoi être reparti aussi bas niveau que HttpServletRequest pour exposer ton service XML ? Tu aurais pu faire du JAX-WS ou JAX-RS c'est quand même fait pour...

Sinon, c'est quoi l'erreur que tu as ?
0
kncwiller Messages postés 2 Statut Membre
 
Slt KX,
en fait voici l'erreur que j'ai

org.apache.http.impl.client.DefaultRequestDirector tryConnect: I/O exception (java.net.SocketException) caught when connecting to the target host: Permission denied: Attempt to access a blocked recipient without permission. (mapped-IPv4)

il fat noter que mon application est hebergé sur la plateforme Google App Engine
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Cette erreur c'est Google qui te la renvoie car tu ne respectes pas les limitations du cloud (tu ne peux pas faire ce que tu veux)

https://cloud.google.com/appengine/docs/standard/java/sockets
0