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

Servlets/JSP Java Discussion :

Problème avec HttpClient


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de dialloma
    Homme Profil pro
    Java / J2EE, PHP
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Java / J2EE, PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Par défaut Problème avec HttpClient
    Bonjour à tous,

    J'essaye de mettre en place une servlet, mais je suis heurté à quelques problèmes avec HttpClient de org.apache.commons.httpclient.HttpClient . Je vous poste mon code, je crois que ça serait plus facile.
    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
     
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.UsernamePasswordCredentials;
    import org.apache.commons.httpclient.auth.AuthScope;
    import org.apache.commons.httpclient.methods.GetMethod;
     
    public class YoJava {
     
    	public YoJava(){
    		super();
    	}
     
    	public static void main(String[] args) throws Exception {
     
    		HttpClient client = new HttpClient();
     
    		client.getState().setCredentials(new AuthScope("http://www.gmail.com", 80), 
    				new UsernamePasswordCredentials("xxxxxxx","xxxxxxxx"));
     
    		GetMethod get = new GetMethod("http://3couleurs.blogspot.com/feeds/posts/default");
    		get.setDoAuthentication(true);	
     
    		try {
    			int status = client.executeMethod(get);
     
    			System.out.println(status + "\n" +get.getResponseBodyAsString());
    		}finally {
    			get.releaseConnection();
    		}
     
    			}
     
    }
    je me suis referé de cet exemple http://svn.apache.org/viewvc/jakarta/commons/proper/httpclient/trunk/src/examples/BasicAuthenticationExample.java?view=markup

    Mais à l'exécution j'ai une erreur à la ligne HttpClient client = new HttpClient(); et ce qui s'affiche dans ma console eclipse est:

    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.commons.httpclient.HttpClient.<clinit>(HttpClient.java:65)
    at YoJava.main(YoJava.java:15)


    J'avoue que je ne vois pas de quoi peut venir ce problème. J'utilise java1.5 et le HttpClient commons-httpclient-3.1-rc1. J'ai même essayé java1.4 avec JSSE mais ça ne marche pas non plus. Ce ne sont pas les même types d'erreurs mais ça ne marche pas.

    Merci de vos différents aides et bonne journée
    dialloma

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    La reponse est la il te manque la package commons-logging dans ton classpath


    Va faire un tour ici :
    http://jakarta.apache.org/commons/logging/

  3. #3
    Membre confirmé Avatar de dialloma
    Homme Profil pro
    Java / J2EE, PHP
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Java / J2EE, PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Par défaut
    Je te remerci beaucoup willoi, j'ai telechargé les .jar dont tu m'as parlé. Ensuite, je me suis heurté à un problème logger. J'ai donc déclaré un logger pour le package org.apache.commons.httpclient et tous les packages fils. Je l'ai fait comme ça:
    public class Maclass {

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private static Logger log1 = Logger.getLogger("org.apache.commons.httpclient");
    puis dans la méthode main j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log1.addAppender(new FileAppender(new SimpleLayout(), "progx1.log"));
    Mais j'ai un time out connection, je suppose que cela n'est pas due à un problème de package qui me manque. Est ce que c'est un problème d'authentification ?
    Merci d'avance
    dialloma

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Ben ca veut dire que tu ne parviens pas a realiser la connexion a ton hote distant et que au bout d'un moment ton programme n'essayes plus de realiser la connexion.

  5. #5
    Membre confirmé Avatar de dialloma
    Homme Profil pro
    Java / J2EE, PHP
    Inscrit en
    Août 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Java / J2EE, PHP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 70
    Par défaut
    Bonjour à tous

    Toujours dans mon avanture d'accès à des webServices. J'ai essayé d'exécuter le code qui suit sur ma machine mais je ne vois pourquoi ça ne marche pas.

    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
    import java.io.IOException;
    import java.util.Properties;
     
    import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.GetMethod;
    import org.apache.commons.httpclient.params.HttpMethodParams;
     
    public class TestHttpClient {
     
    	/**
    	 * @param args
    	 */
    	 private static String url = "http://www.apache.org/";
    	public static void main(String[] args) {
     
     
    //		 Create an instance of HttpClient.
    	    HttpClient client = new HttpClient();
     
    	    // Create a method instance.
    	    GetMethod method = new GetMethod(url);
     
    	    // Provide custom retry handler is necessary
    	    method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
    	    		new DefaultHttpMethodRetryHandler(3, false));
     
    	    try {
    	      // Execute the method.
    	      int statusCode = client.executeMethod(method);
     
    	      if (statusCode != HttpStatus.SC_OK) {
    	        System.err.println("Method failed: " + method.getStatusLine());
    	      }
     
    	      // Read the response body.
    	      byte[] responseBody = method.getResponseBody();
     
    	      // Deal with the response.
    	      // Use caution: ensure correct character encoding and is not binary data
    	      System.out.println(new String(responseBody));
     
    	    } catch (HttpException e) {
    	      System.err.println("Fatal protocol violation: " + e.getMessage());
    	      e.printStackTrace();
    	    } catch (IOException e) {
    	      System.err.println("Fatal transport error: " + e.getMessage());
    	      e.printStackTrace();
    	    } finally {
    	      // Release the connection.
    	      method.releaseConnection();
    	    }  
    	  }
    }
    Pourriez vous s'il vous plait le tester chez vous pour voir si c'est moi qui fais mal les choses ? N'oubliez pas d'inclure les librairies de HttpClient et ses dépendances dans votre classpath. On peut les downloader ici http://jakarta.apache.org/commons/ht...endencies.html

    Je précise qu'il y a un proxy à mon entreprise pour se connecter sur internet. Donc j'ai fait 2 manips l'une après l'autre pour ça.
    - Dans eclipse : clique droit sur la classe ->puis run -> Arguments -> VM et là on ajoute les lignes suivantes :
    -Dhttp.proxyHost=le_proxy
    -Dhttp.proxyPort=le_port

    - J'ai aussi essayé de mettre ces quelques lignes dans mon code java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Properties props = System.getProperties();
    props.setProperty("http.proxyHost", "proxy.mondomaine.com");
    props.setProperty("http.proxyPort", "3128"); // Par défaut 80
    System.setProperties(systemSettings);
     
    // Pour s'authentifier auprès du proxy
    System.setProperty ("http.proxyUserName", nom_utilisateur);
    System.setProperty ("http.proxyPassword", mot_de_passe);
    Je ne sais pas où ça cloche, pourtant je ne crois pas que ça soit compliqué. Je compte sur vous pour m'aider.

    Merci d'avance et bonne journée

Discussions similaires

  1. Problème d'authenfication avec HttpClient 4
    Par id_rima dans le forum Développement Web en Java
    Réponses: 5
    Dernier message: 28/07/2011, 18h11
  2. Problème avec le package commons-httpclient-3.0.1
    Par kannar dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 04/09/2006, 16h39
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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