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

GWT et Vaadin Java Discussion :

Requête HTTP qui devrait être toute simple !


Sujet :

GWT et Vaadin Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 30
    Points
    30
    Par défaut Requête HTTP qui devrait être toute simple !
    Salut ! Je n'arrive pas à faire marcher une simple requête HTTP.
    Je l'envoie au service Google Places API (qui me trouve une adresse postale quand je cherche un nom de rue ou de ville).
    J'envoie donc cette URL:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Lyon&sensor=false&key=...
    Si je la tape directement dans Firefox, elle me renvoie très bien (en XML ou JSON) le bon résultat.

    Si je l'envoie comme ceci:

    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
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
     
    	    try {
    	      //builder.setHeader("Content-Type", "application/json");
    	      builder.setHeader("Accept", "application/json");
    	      builder.setHeader("Accept-Charset", "UTF-8");
    	      Request response = builder.sendRequest(null, new RequestCallback() {
     
    	        public void onError(Request request, Throwable exception) {
    	        	...
    	        }
     
    	        public void onResponseReceived(Request request, Response response) {
    	        	...
    	        }
    	      });
    	    } catch (RequestException e) {
    	    	System.out.println("RequestException : " + e.getMessage());
    	    }
    Je n'obtiens presque rien.

    response.getStatusCode() = 0
    result = com.google.gwt.http.client.Request$1@4e4e1c
    response.getHeaders() = [Lcom.google.gwt.http.client.Header;@ea3039
    response.getHeaders().hashCode() = 17035706

    Dans Firebug, la requête est en rouge, bien que le status code est "200 OK". POST et RESPONSE sont vides, alors qu'ils devraient contenir du XML ou JSON.

    et Firebug me dit :

    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
    Response Headers :
     
    Content-Type	application/json; charset=UTF-8
    Date	Tue, 09 Aug 2011 12:41:28 GMT
    Expires	Tue, 09 Aug 2011 12:46:28 GMT
    Cache-Control	public, max-age=300
    Vary	Accept-Language
    Content-Encoding	gzip
    Server	mafe
    Content-Length	1098
    X-XSS-Protection	1; mode=block
     
    Request Headers :
     
    Host	maps.googleapis.com
    User-Agent	Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0
    Accept	application/json
    Accept-Language	fr-fr,fr;q=0.8,en-us;q=0.5,en;q=0.3
    Accept-Encoding	gzip, deflate
    Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
    Connection	keep-alive
    Referer	<a href="http://127.0.0.1:8888/Tipi.html?gwt.codesvr=127.0.0.1:9997" target="_blank">http://127.0.0.1:8888/Tipi.html?gwt....127.0.0.1:9997</a>
    Origin	<a href="http://127.0.0.1:8888" target="_blank">http://127.0.0.1:8888</a>
    Merci bcp, si qq'un peut m'aider !!!

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    Bonjour ,

    Peut on voir ou se situe et comment est fait ton callBack ?

    Cordialement

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 17
    Points : 21
    Points
    21
    Par défaut
    J'ai le même problème.

    Je me suis renseigné et ce serai peut être un problème de SOP ( Single Origin Police).

    Je n'ai pas encore réussi a corriger la chose.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 30
    Points
    30
    Par défaut
    Voilà la totalité, avec le callback :

    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
     
    RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
     
    	    try {
    	      //builder.setHeader("Content-Type", "application/json");
    	      builder.setHeader("Accept", "application/json");
    	      builder.setHeader("Accept-Charset", "UTF-8");
    	      Request response = builder.sendRequest(null, new RequestCallback() {
     
    	        public void onError(Request request, Throwable exception) {
    	        	System.out.println("request : "+request);
    	        	System.out.println("exception : "+exception);
    	        }
     
    	        public void onResponseReceived(Request request, Response response) {
    	        	System.out.println("result : "+response);
    				System.out.println("response.getStatusCode() : "+response.getStatusCode());
    				System.out.println("onResponseReceived, response getHeaders : "+response.getHeaders());
    				System.out.println("onResponseReceived, response getHeaders hashCode : "+response.getHeaders().hashCode());
    				System.out.println("onResponseReceived, response getHeadersAsString : "+response.getHeadersAsString());
    				System.out.println("onResponseReceived, response getText : "+response.getText());
    				System.out.println("onResponseReceived, response getStatusCode : "+response.getStatusCode());
    				System.out.println("onResponseReceived, response getStatusText : "+response.getStatusText());
    	        }
    	      });
    	    } catch (RequestException e) {
    	    	System.out.println("RequestException : " + e.getMessage());
    	    }
    Depuis, j'ai trouvé une façon de faire légèrement meilleure, mais qui ne résoud pas le pb.
    C'est en utilisant la classe JsonpRequestBuilder (avec le "P" en +).
    Mais cette fois, la requête a l'air de planter puisqu'elle execute le "onFailure", alors que dans Firebug, je vois le résultat de ma requête MAIS UNIQUEMENT dans "net" mais rien dans "console" !

    Et vu qu'il execute le onFailure, je ne peux pas récupérer le résultat de ma requête, bien que je le vois dans Firebug.

    Voilà la requête qui a ce résultat de merde :

    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
    JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
     
     
    		jsonp.requestObject(url, new AsyncCallback<JavaScriptObject>() {
    		    @Override
    		    public void onFailure(Throwable caught) {
    		    	System.out.println("caught : "+caught);
                }
     
                @Override
                public void onSuccess(JavaScriptObject result) {
                	System.out.println("result : "+result);
                }
     
                public void onResponseReceived(Request request, Response response) {
                	System.out.println("response : "+response);
                }
    });
    J'ai vu le pb du SOP. Si tu trouves comment l'éviter, merci de me le dire !
    Ou si qq'un trouve n'importe quelle autre façon de faire une requête HTTP, n'hésitez pas !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 26
    Points : 30
    Points
    30
    Par défaut
    Pour info, j'ai trouvé comment contourner ce pb !
    Le blocage ne se fait que lorsquen c'est la partie client de notre logiciel (fonctionnant avec le framework GWT) qui fait cette requête. Créez une classe (voir ci-dessous) et fait la requête du côté serveur et ça marche car c'est indépendant de GWT.
    Il faut aussi penser, lorsque vous ferez la classe des données résultant de la requête, à mettre du côté serveur, une version de cette classe avec des déclarations comme "@XmlRootElement" et "@XmlAccessorType(XmlAccessType.FIELD)", et du côté client une version quasi-similaire mais sans ces déclarations.

    N'hésitez pas à me poser des questions si je ne suis pas bien clair.

    GmapWebService.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
     
    package com.tipi_v1.server;
     
    import java.net.URI;
    import java.security.InvalidParameterException;
    import java.util.List;
     
    import javax.ws.rs.core.MediaType;
    import javax.ws.rs.core.MultivaluedMap;
    import javax.ws.rs.core.UriBuilder;
     
    import com.sun.jersey.api.client.Client;
    import com.sun.jersey.api.client.ClientResponse;
    import com.sun.jersey.api.client.GenericType;
    import com.sun.jersey.api.client.WebResource;
    import com.sun.jersey.api.client.config.ClientConfig;
    import com.sun.jersey.api.client.config.DefaultClientConfig;
    import com.sun.jersey.core.util.MultivaluedMapImpl;
    import com.tipi_v1.client.domain.tipi_fille.GmapInfo;
     
    public class GmapWebService {
     
    		private ClientConfig 	config = null;
    		private Client			client = null;
    		private WebResource		service = null;
    		private static final String 	KEY = "...";
    		private static GmapWebService	instance = null;
     
    		public static GmapWebService	getInstance() {
    			if (GmapWebService.instance == null)
    				GmapWebService.instance = new GmapWebService();
    			return (GmapWebService.instance);
    		}
     
    		private GmapWebService() {
    			config = new DefaultClientConfig();
    			client = Client.create(config);
    			service = client.resource(getBaseURI());
    		}
     
    		private static URI getBaseURI() {
    			return UriBuilder.fromUri(
    					"https://maps.googleapis.com/maps/api/place/autocomplete/").build();
    		}
    		public List<GmapInfo>	getFileList(String address) {
    			MultivaluedMap<String,String> queryParams = new MultivaluedMapImpl();
    			queryParams.add("input", address);
    			queryParams.add("key", KEY);
    			queryParams.add("sensor", "false");
    			ClientResponse rep = service.path("json").queryParams(queryParams).accept(MediaType.APPLICATION_JSON).get(ClientResponse.class);
    //			GenericType<List<GmapInfo>> genericType = new GenericType<List<GmapInfo>>() {};
    //			List<GmapInfo> response = rep.getEntity(genericType);
    			String resp = rep.getEntity(String.class);
    			System.out.println(resp);
    			if (rep.getStatus() != 200)
    				throw new InvalidParameterException();
     
    	        return (null);
    		}
    	}

    GmapInfo.java (version serveur):

    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
    package com.tipi_v1.server;
     
    import java.util.Date;
     
    import javax.xml.bind.annotation.XmlAccessType;
    import javax.xml.bind.annotation.XmlAccessorType;
    import javax.xml.bind.annotation.XmlElement;
    import javax.xml.bind.annotation.XmlRootElement;
     
    //import net.epitech.dorian.client.swing.Config;
     
    @XmlRootElement
    @XmlAccessorType(XmlAccessType.FIELD) 
    public class GmapInfo {
    		@XmlElement
    		private String          path;
    //		private File            file;
    		@XmlElement
    		private String          hash;
    		@XmlElement
    		private Date            modDate;
     
    		public GmapInfo() {
    		}
     
    		public String getPath() {
    			return path;
    		}
     
    		public String getHash() {
    			return hash;
    		}
     
    		public Date getModDate() {
    			return modDate;
    		}
    	//
    //		public File getFile() {
    //			return file;
    //		}
    	//
    //		public void setFile(File file) {
    //			this.file = file;
    //		}
     
    		public void setPath(String path) {
    			this.path = path;
    		}
     
    		public void setHash(String hash) {
    			this.hash = hash;
    		}
     
    		public void setModDate(Date modDate) {
    			this.modDate = modDate;
    		}
    	}
    GmapInfo.java (version client):

    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
    package com.tipi_v1.client.domain.tipi_fille;
     
    import java.util.Date;
     
    public class GmapInfo {
    		private String          path;
    		private String          hash;
    		private Date            modDate;
     
    		public GmapInfo() {
    		}
     
    		public String getPath() {
    			return path;
    		}
     
    		public String getHash() {
    			return hash;
    		}
     
    		public Date getModDate() {
    			return modDate;
    		}
     
    		public void setPath(String path) {
    			this.path = path;
    		}
     
    		public void setHash(String hash) {
    			this.hash = hash;
    		}
     
    		public void setModDate(Date modDate) {
    			this.modDate = modDate;
    		}
    	}

  6. #6
    Membre régulier
    Profil pro
    Architecte
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 80
    Points
    80
    Par défaut
    Bonjour,
    La régle SOP (Simple Origin Policy) interdit d'effectuer une requête Ajax vers un serveur qui n'est pas celui herbergeant l'application GWT.
    Un moyen de contourner cette contrainte est de passer par un proxy coté serveur.
    Avec une simple JSP on redirige la requête HTTP vers le serveur cible.

    Ci dessous ma JSP proxy.jsp :

    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
    <%@page import="javax.naming.Context"%>
    <%@page import="javax.naming.InitialContext"%><%@page session="false"%>
    <%@page import="java.net.*,java.io.*" %>
     
    <%
    try {
    	String reqUrl = request.getQueryString();
    	URL url = new URL(reqUrl.substring(4));
     
    	HttpURLConnection con = (HttpURLConnection)url.openConnection();
    	con.setDoOutput(true);
    	con.setRequestMethod(request.getMethod());
    	int clength = request.getContentLength();
    	if (clength > 0) {
    		con.setDoInput(true);
    		byte[] idata = new byte[clength];
    		request.getInputStream().read(idata,0,clength);
    		con.getOutputStream().write(idata,0,clength);
    	}
    	response.setContentType(con.getContentType());
    	BufferedReader rd = new BufferedReader(new InputStreamReader(con.getInputStream()));
    	String line;
    	while ((line = rd.readLine()) != null) {
    		out.println(line);
    	}
    	rd.close();
    	} catch (Exception e) {
    		e.printStackTrace();
    		response.setStatus(500);
    	}
    %>
    L'appel se fait ainsi URL = "proxy.jsp?url=" + URL?encode("http://...");

    PS: C'est très bien expliqué dans le livre "Programmation GWT2" de Sami Jaber.

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour

    Je rencontre le même problème.
    J'essaye d'utiliser la méthode avec proxy.jsp mais je reçois un 404.

    Ou faut il placer le proxy.jsp ? dans la partie client, serveur ou ailleurs ?
    voici mon code ou se passe le problème
    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
     
    	public void Load(final String url) {
    		set_url(PROXY_JSP + url);
    		RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, PROXY_JSP + url);
     
    		try {
    			GWT.log("KMLParser.java : Send Request GET on: " + PROXY_JSP + url);
    			Request request = builder.sendRequest(null, new RequestCallback() {
    				public void onError(Request request, Throwable exception) {
    					setXmlData("Sorry");
    					GWT.log("KMLParser.java : Couldn't get file at:" + PROXY_JSP + url);
    					// Couldn't connect to server (could be timeout, SOP
    					// violation, etc.)
    					loaded = true;
    				}
     
    				public void onResponseReceived(Request request,
    						Response response) {
    					setXmlData(response.getText());
    					// Document doc = XMLParser.parse(xmlData);
    					loaded = true;
    					GWT.log("KMLParser.java : Load() : header:" + response.getHeadersAsString());
    					GWT.log("KMLParser.java : Load() : getStatusCode:" + response.getStatusCode());
    					if (Response.SC_OK == response.getStatusCode()) {
    						GWT.log("KMLParser.java : Load() : Response GOT with data: " + xmlData, null);
    						// Parse the document to get points
    						SaxParser();
    						display(get_url());
    					} else {
    						GWT.log("KMLParser.java : Load() : Response KO not 200:"
    								+ response.getStatusCode());
    					}
    				}
    			});
    		} catch (RequestException e) {
    			loaded = false;
    			GWT.log("KMLParser.java : Exception, could not connect to the server :"
    					+ e.toString());
    			// Couldn't connect to server
    		} catch (DOMParseException e) {
    			loaded = false;
    			GWT.log("KMLParser.java : Exception in parsing document :" + e.toString());
    		}
    	}
    avec en tête de la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String PROXY_JSP = "proxy.jsp?url=";
    Est-ce que j'ai oublié des choses ?
    Je ne connais pas grand chose au développement web donc je suis un peu perdu.

    Je précise que ça ne marche pas uniquement avec Firefox, avec IE, ça fonctionne à condition de l'autoriser à se connecter à un site distant.

    Merci à ceux qui liront et encore plus à ceux qui répondront.
    Cordialement

  8. #8
    Membre régulier
    Profil pro
    Architecte
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 80
    Points
    80
    Par défaut
    Bonjour,
    La jsp Proxy.jsp doit se placer au même endroit que la page HTML de l'application GWT.

    Cordialement

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Merci pour la réponse.

    Mais maintenant j'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.ConnectException: Connection timed out: connect
    Est-ce du au fait que j'utilise un proxy ?

    Message d'erreur en entier (j'ai masqué les adresses et nom de fichiers)
    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
    [ERROR] 500 - GET /proxy.jsp?url=http://*********/*****.*** (127.0.0.1) 9 bytes
       Request headers
          Host: 127.0.0.1:8888
          User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
          Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
          Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
          Accept-Encoding: gzip, deflate
          Connection: keep-alive
          Referer: <a href="http://127.0.0.1:8888/*******.html?gwt.codesvr=127.0.0.1:9997" target="_blank">http://127.0.0.1:8888/*******.html?g...127.0.0.1:9997</a>
          Content-Type: text/plain; charset=utf-8
       Response headers
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    	at java.lang.reflect.Constructor.newInstance(Unknown Source)
    	at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
    	at sun.net.www.protocol.http.HttpURLConnection$6.run(Unknown Source)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.getChainedException(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...eption(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.getInputStream(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...Stream(Unknown</a> Source)
    	at org.apache.jsp.proxy_jsp._jspService(proxy_jsp.java:64)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.Server.handle(Server.java:324)
    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:829)
    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:513)
    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
    Caused by: java.net.ConnectException: Connection timed out: connect
    	at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
    	at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    	at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    	at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    	at java.net.PlainSocketImpl.connect(Unknown Source)
    	at java.net.SocksSocketImpl.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)
    	at sun.net.NetworkClient.doConnect(Unknown Source)
    	at sun.net.<a href="http://www.http.HttpClient.openServer(Unknown" target="_blank">www.http.HttpClient.openServer(Unknown</a> Source)
    	at sun.net.<a href="http://www.http.HttpClient.openServer(Unknown" target="_blank">www.http.HttpClient.openServer(Unknown</a> Source)
    	at sun.net.www.http.HttpClient.<init>(Unknown Source)
    	at sun.net.<a href="http://www.http.HttpClient.New(Unknown" target="_blank">www.http.HttpClient.New(Unknown</a> Source)
    	at sun.net.<a href="http://www.http.HttpClient.New(Unknown" target="_blank">www.http.HttpClient.New(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...Client(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.plainConnect(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...onnect(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.connect(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...onnect(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.getInputStream(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...Stream(Unknown</a> Source)
    	at sun.net.<a href="http://www.protocol.http.HttpURLConnection.getHeaderField(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...rField(Unknown</a> Source)
    	at java.net.URLConnection.getContentType(Unknown Source)
    	at org.apache.jsp.proxy_jsp._jspService(proxy_jsp.java:63)
    	... 23 more

  10. #10
    Membre régulier
    Profil pro
    Architecte
    Inscrit en
    Mai 2004
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2004
    Messages : 57
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Il semblerait que l'erreur se passe dans proxy.jsp. (at org.apache.jsp.proxy_jsp._jspService(proxy_jsp.java:64)
    )
    C'est déjà un pas de fait !!
    Tu dois pouvoir debugger la jsp. Ça fait longtemps que je n'ai pas fait cela mais d'après mes souvenirs c'est possible.

    Bon courage.

  11. #11
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    bonjour

    je suis toujours coincé.
    J'ai essayé aussi de mettre l'appel au site extérieur en partie serveur mais j'ai des erreurs de RPC, ça m'a l'air un peu trop compliqué donc j'aimerais mieux passer par la méthode du proxy.jsp.

    Si je me trompe pas, c'est cette ligne qui renvoi une erreur :
    HttpURLConnection con = (HttpURLConnection)url.openConnection();

    Il n'arrive pas à se connecter.
    le réseau sur lequel je suis à un proxy, faut t il entrer sa configuration quelque part ?

    J'ai vu sur des forums que mettre -noserver dans les arguments d’exécution pouvait résoudre le problème , j'ai essayé mais avec il ne veut même plus accéder à la page

    J'ai aussi vu qu'en passant par JSONP ça marché. Mais je récupérer du code XML, est-ce que ça marchera quant même ?

    J'ai du mal à comprendre comment un tel problème ne regorge pas de nombreux tutoriels sur internet

    Merci à ceux qui essaieront de m'aider

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 15
    Points : 15
    Points
    15
    Par défaut
    Bonjour

    J'effectue mes appels coté serveur maintenant.

    Mes erreurs RPC étaient dues au fait que mes données envoyées vers la partie client n'était pas sérializables.
    Maintenant j'utilise des String et ça marche très bien.

Discussions similaires

  1. hover(), l'objet qui devrait être visible reste caché
    Par moumous24 dans le forum jQuery
    Réponses: 1
    Dernier message: 25/01/2011, 21h26
  2. Réponses: 1
    Dernier message: 10/08/2010, 14h26
  3. Réponses: 0
    Dernier message: 30/12/2009, 02h52
  4. Requête SQL qui a l'air simple mais qui est musclée !
    Par tamiii dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/07/2008, 16h51
  5. [Defi] Query SQL qui semble tres simple
    Par Wakko2k dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/04/2004, 10h01

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