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

Développement Web en Java Discussion :

connexion à un site qui échoue


Sujet :

Développement Web en Java

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut connexion à un site qui échoue
    Bonjour, j'ai un souci avec un bout de code qui essaie de se connecter à une url afin de voir si celle ci répond bien, mon code fonctionne en local mais si j'essaie de le deployer sur mon serveur de production la connection échoue , voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                        URL u = new URL(encod(url));
                        HttpURLConnection huc = (HttpURLConnection) u.openConnection();
                        huc.setRequestMethod("GET");
                        huc.connect();
                        if (huc.getResponseCode() != 200) {
                            errorSet("Site inaccessible");
                        }
    et ce que je retrouve dans les logs de mon 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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    14-Dec-2015 02:16:13.594 SEVERE [http-nio-8080-exec-22] validators.UrlSiteValidator.validate null
     java.net.ConnectException: Connexion refusée
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
            at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
            at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
            at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
            at java.net.Socket.connect(Socket.java:589)
            at java.net.Socket.connect(Socket.java:538)
            at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
            at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
            at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
            at sun.net.www.http.HttpClient.New(HttpClient.java:308)
            at sun.net.www.http.HttpClient.New(HttpClient.java:326)
            at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1169)
            at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)
            at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
            at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:933)
            at validators.UrlSiteValidator.validate(UrlSiteValidator.java:70)
            at javax.faces.component.UIInput.validateValue(Unknown Source)
            at javax.faces.component.UIInput.validate(Unknown Source)
            at javax.faces.component.UIInput.executeValidate(Unknown Source)
            at javax.faces.component.UIInput.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at org.primefaces.component.fieldset.Fieldset.processValidators(Fieldset.java:189)
            at javax.faces.component.UIForm.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at org.primefaces.component.panel.Panel.processValidators(Panel.java:287)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at org.primefaces.component.layout.Layout.processValidators(Layout.java:233)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at javax.faces.component.UIComponentBase.processValidators(Unknown Source)
            at javax.faces.component.UIViewRoot.processValidators(Unknown Source)
            at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(Unknown Source)
            at com.sun.faces.lifecycle.Phase.doPhase(Unknown Source)
            at com.sun.faces.lifecycle.LifecycleImpl.execute(Unknown Source)
            at javax.faces.webapp.FacesServlet.service(Unknown Source)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:176)
            at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
            at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
            at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:721)
            at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:466)
            at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:391)
            at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:318)
            at org.tuckey.web.filters.urlrewrite.NormalRewrittenUrl.doRewrite(NormalRewrittenUrl.java:213)
            at org.tuckey.web.filters.urlrewrite.RuleChain.handleRewrite(RuleChain.java:171)
            at org.tuckey.web.filters.urlrewrite.RuleChain.doRules(RuleChain.java:145)
            at org.tuckey.web.filters.urlrewrite.UrlRewriter.processRequest(UrlRewriter.java:92)
            at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:394)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:537)
            at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1085)
            at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:658)
            at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1556)
            at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1513)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
            at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
            at java.lang.Thread.run(Thread.java:745)
                                                                                                                                          2560693,1-8   99%
    La ligne de mon code notifié correspond à l'appel de la fonction connect(), si je la supprime c'est la même chose, je pensais que iptables empêchait le script de faire son travail mais je n'en suis pas sur après tout c http, enfin je sais pas trop.

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    validators.UrlSiteValidator.validate null
    J'ai bien l'impression que le nom du serveur est null et que d'une manière ou d'une autre tu l'a convertis en la string "null" ce qui implique une tentative de connection sur http://null qui n'existe pas...? Rajoute des messages de log qu'on vois ce que ton code tente de faire. Comme l'url qu'il tente d'atteindre au final.

  3. #3
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Regarde ce que fait
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Merci pour vos réponses, en fait je testais des adresses m'appartenant et étant toutes sur le même serveur, le même serveur sur lequel j'ai fait mes tests, mais avec d'autres adresses ça fonctionne en fait, donc le code fonctionne. Sinon le fait que ça ne fonctionne pas avec mes sites n'est pas très important mais j'aimerais quand même savoir à quoi cela peut-il être du ? iptables ?

    Merci.

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'as un null qui traine dans ton bordel, une de tes méthodes le renvoie, comme on n'a ni le code ni l'origine de tes données, on ne peux pas dire, mais je pencherais plutot pour un problème de code qu'un obscur comportement de iptables qui créerait ce null

  6. #6
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 014
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 014
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    bah c'est étonnant que ça marche avec tous les sites sauf les miens ...
    Sinon voici le code complet de mon validator, j'ai viré encod qui ne servait à rien (encod encode les caractères du HTML mais comme je fais deja un test avec une regex ça sert pas à grand chose) :

    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
    97
    98
    99
    100
    101
    102
    package validators;
     
    import classes.Datas;
    import classes.MyException;
    import classes.Site;
    import java.io.IOException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.sql.SQLException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import java.util.regex.Pattern;
    import javax.faces.component.UIComponent;
    import javax.faces.component.UIInput;
    import javax.faces.context.FacesContext;
    import javax.faces.validator.FacesValidator;
    import javax.faces.validator.Validator;
    import javax.faces.validator.ValidatorException;
    import javax.naming.NamingException;
     
    /**
     *
     * @author pj
     */
    @FacesValidator("urlSiteValidator")
    public class UrlSiteValidator extends SuperValidator implements Validator {
     
        public UrlSiteValidator() {
            super();
        }
     
        @Override
        public void validate(FacesContext fc, UIComponent uic, Object o) throws ValidatorException {
            try {
                this.fc = fc;
                this.uic = uic;
     
                String url = o.toString().toLowerCase();
     
                if (url == null) {
                    errorSet("Champ null");
                } else if (url.isEmpty()) {
                    errorSet("Champ vide");
                } else if (url.length() < Datas.URLSITEMINLEN) {
                    errorSet("Champ trop court");
                } else if (url.length() > Datas.URLSITEMAXLEN) {
                    errorSet("Champ trop long");
                } else if (!Pattern.matches(Datas.REGEXURL, url.toLowerCase())) {
                    errorSet("Champ non valide");
                } else if (Site.isURLExists(encod(url.replaceAll("/", "")))) {
                    errorSet("Site déjà enregistré");
                } else {
                    UIInput input = (UIInput) fc.getViewRoot().findComponent("form:protocol");
                    if (input.isValid()) {
                        int protocol = Integer.parseInt(input.getValue().toString());
                        switch (protocol) {
                            case 0:
                                url = "http://" + url;
                                break;
                            case 1:
                                url = "https://" + url;
                                break;
                            default:
                                throw new MyException("Protocol non valide");
                        }
                        URL u = new URL(url);
                        System.out.println(url);
                        HttpURLConnection huc = (HttpURLConnection) u.openConnection();
                        huc.setRequestMethod("GET");
                        huc.connect();
                        if (huc.getResponseCode() != 200) {
                            errorSet("Site inaccessible");
                        }
     
                    } else {
                        errorSet("Protocole non-valide");
                    }
                }
            } catch (SQLException ex) {
                Logger.getLogger(UrlSiteValidator.class.getName()).log(Level.SEVERE, null, ex);
                errorSet("Erreur SQL");
            } catch (NamingException ex) {
                Logger.getLogger(UrlSiteValidator.class.getName()).log(Level.SEVERE, null, ex);
                errorSet("Base indisponible");
            } catch (MalformedURLException ex) {
                Logger.getLogger(UrlSiteValidator.class.getName()).log(Level.SEVERE, null, ex);
                errorSet("Site innaccessible");
            } catch (IOException ex) {
                Logger.getLogger(UrlSiteValidator.class.getName()).log(Level.SEVERE, null, ex);
                errorSet("Site inaccessible");
            } catch (NumberFormatException ex) {
                errorSet("Protocol non valide");
            } catch (MyException ex) {
                Logger.getLogger(UrlSiteValidator.class.getName()).log(Level.SEVERE, null, ex);
                errorSet(ex.getMessage());
            } finally {
                closeConnection();
            }
        }
     
    }

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ok dans tes loggers remplace le message null par ce sera déjà plus clair. Ton test null est inutile en début de code.url ne peut jamais être null car toLowerCase ne renvoie jamais null. Par contre si o est null tu aura un joli NullPointerException... Enfin, hardcoder l'id d'un composant. Pas top comme idée.

Discussions similaires

  1. [PDO] connexion à la bdd qui échoue
    Par laurentSc dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 04/01/2015, 12h30
  2. Quelle sécurité pour sites qui demandent connexion Gmail ?
    Par Wymeswold dans le forum Sécurité
    Réponses: 3
    Dernier message: 21/06/2011, 20h54
  3. [cURL] Connexion à un site qui nécessite un certificat
    Par PaNTi dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 31/08/2007, 17h32
  4. [SQL-Server] sql server express + php connexion qui échoue
    Par if_zen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/07/2006, 23h41
  5. Site qui vérifie les actualisations d'une page web
    Par LFC dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 01/12/2005, 19h47

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