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 :

java.net.ConnectException (servlet)


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut java.net.ConnectException (servlet)
    Bonjour a tous,

    J'ai pu commencer à m'y mettre avec les servlet, mais j'ai eu une exception
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.ConnectException: Connection timed out: connect
    et ça bloque au niveau de et dans ce tuto j'ai vu que l'URL peut ne pas supporter la sortie:

    http://docs.oracle.com/javase/tutori...ngWriting.html

    - est ce que on peut remplacer OutputStreamWriter par une autre ligne de commande???
    - comment je peux gérer cette exception

    Je veux signaler que le programme qui établie la connexion est chargé dans le serveur Tahiti

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut java.net.ConnectException
    aucune idée???

  3. #3
    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
    Attends, je sort ma boule de crystal et j'essaie de deviner quel est le code de ta servlet, quelle est la stacktrace de l'exception et dans quelles conditions ça se produit.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut


    le programme de ma servlet est:
    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
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     
            try {
                int length = request.getContentLength();
                byte[] input = new byte[length];
                ServletInputStream sin = request.getInputStream();
                int c, count = 0 ;
                while ((c = sin.read(input, count, input.length-count)) != -1) {
                    count +=c;
                }
                sin.close();
     
                String recievedString = new String(input);
                response.setStatus(HttpServletResponse.SC_OK);
                OutputStreamWriter writer = new OutputStreamWriter(response.getOutputStream());
     
                Integer doubledValue = Integer.parseInt(recievedString) * 2;
     
                writer.write(doubledValue.toString());
                writer.flush();
                writer.close();
     
            } catch (IOException e) {
     
     
                try{
                    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
                    response.getWriter().print(e.getMessage());
                    response.getWriter().close();
                } catch (IOException ioe) {
                }
            }
    le code du programme qui invoque la servlet est:
    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
    public class Aglet2 extends Aglet {
    	Integer doubledValue=0;
    	String inputValue=null;
    	public void OnCreation (Object init){
    	//	System.out.println("Agent created"+init);
    }
     
    	public void run(){
    		System.out.println("Agent running");
    		try{
    		URL url = new URL("http://10.0.2.2:8080/MyServletProject/DoubleMeServlet");
                    URLConnection connection = url.openConnection();
     
     
    		connection.setDoOutput(true);
     
            OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());/// mon souci se trouve iciii le programme ce bloque
            out.write("4");
            out.close();
     
            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
     
            String returnString="";
            doubledValue =0;
     
            while ((returnString = in.readLine()) != null)
            {
                doubledValue= Integer.parseInt(returnString);
                System.out.println(doubledValue);
            }
            in.close();
     
            }catch(Exception e)
            {
            	System.out.println(e);
            }
    }
    et comme erreur j'ai que cette ligne c'est tout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.net.ConnectException: Connection timed out: connect
    quand je lance le programme tout va bien au début, et après un moment il se bloque et j'obtiens ce message, j'ai fait des testes et j'ai trouvé que ça se bloque au niveau de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());

  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
    Tu dis que ça fonctionne un certain temps, puis ça ne marche plus. Quand tu dis que ça fonctionne, tu obtiens bien une réponse de la servlet? Tu sort bien de ton run dans ton aglet? Parce que, à mon avis, t'as une chiée d'aglet qui attendent une réponse de la servelt, la servlet qui attends des messages de l'Aglet et, au bout d'un certains temps, vu le nombre de requetes en attente, le serveur J2EE commence à refuser les connexions.


    Quelques remarque:

    1) rajoute des messages pour confirmer que ton Aglet et ta servlet tournent bien.
    2) évite les System.out.println(exception), préfère les appels exceptin.printStacktrace(), qui sont bien plus verbeux
    3) le catch vide, c'est le mal, affiche quelque chose dedans
    4) il n'est pas de la responsabilité de la servlet de cloturer les Stream de la requête, c'est de la responsabilité du conteneur, donc les sin.close() => dehors.

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Tu dis que ça fonctionne un certain temps, puis ça ne marche plus. Quand tu dis que ça fonctionne, tu obtiens bien une réponse de la servlet? Tu sort bien de ton run dans ton aglet? Parce que, à mon avis, t'as une chiée d'aglet qui attendent une réponse de la servelt, la servlet qui attends des messages de l'Aglet et, au bout d'un certains temps, vu le nombre de requetes en attente, le serveur J2EE commence à refuser les connexions.


    Quelques remarque:

    1) rajoute des messages pour confirmer que ton Aglet et ta servlet tournent bien.
    2) évite les System.out.println(exception), préfère les appels exceptin.printStacktrace(), qui sont bien plus verbeux
    3) le catch vide, c'est le mal, affiche quelque chose dedans
    4) il n'est pas de la responsabilité de la servlet de cloturer les Stream de la requête, c'est de la responsabilité du conteneur, donc les sin.close() => dehors.
    voilà c'est exactement le cas l'aglet attend et la servlet attend !!!!!!
    je suis désolé peut être je suis pas très claire mais aucune requête ne passe dès le debut ça bloque c'est à dire je ne sort pas du run de l'aglet, ça fonctionne qu'au niveau de la connexion c'est tout, la connexion est exécutée super bien. c'est pour ça que j'ai dis que ça fonctionne je veux dire les premières lignes du programme.
    désolé une autre fois.

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    avec j'ai eu :
    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
    java.net.ConnectException: Connection timed out: connect
    	at java.net.PlainSocketImpl.socketConnect(Native Method)
    	at java.net.PlainSocketImpl.doConnect(Unknown Source)
    	at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
    	at java.net.PlainSocketImpl.connect(Unknown Source)
    	at java.net.Socket.connect(Unknown Source)java.net.ConnectException: Connection timed out: connect
     
    	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.getOutputStream(Unknown" target="_blank">http://www.protocol.http.HttpURLConn...Stream(Unknown</a> Source)
    	at test2.Aglet2.run(Aglet2.java:29)
    	at com.ibm.aglets.SystemMessage.handle(SystemMessage.java:121)
    	at com.ibm.aglets.AgletThread.run(AgletThread.java:104)

  8. #8
    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
    Je ne comprends pas clairement. Dès le départ tu as l'exception? Tu teste bien avec une seul Aglet, tu n'en lance pas tout plein d'un coup?

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Je ne comprends pas clairement. Dès le départ tu as l'exception? Tu teste bien avec une seul Aglet, tu n'en lance pas tout plein d'un coup?
    non pas du tout, je ne lance pas tout, en plus j'ai une seul aglet
    et l'exception je l'ai eu après l'ajout de

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    J'ai essayé de faire :
    1. désactiver le pare-feu car j'ai vu dans un forum que: une sorte de pare-feu sur le chemin mange tout simplement les paquets sans le dire les choses de l'expéditeur comme "No route to host" ; mais ça marche pas.
    2. j'ai pas surcharge sur le réseau car j'ai vu que mon erreur peux se produire à cause de : la perte de paquets en raison de la configuration du réseau de mal ou de surcharge de la ligne


  11. #11
    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
    Donc dès le départ, l'adget renvoie un message d'erreur. Ce qui signifie que l'adget n'a simplement pas accès à ton serveur tournant sur 10.0.2.2.
    Où tourne le serveur, ou tourne l'adget? Sui tu tappe l'url dans ton browser, tu as accès au serveur? Quelle est la configuration réseau du serveur? Le range 10.x.x.x n'est pas courant en adressage local, le routage fonctionne correctement dans ton réseau?

  12. #12
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Points : 43
    Points
    43
    Par défaut la solution
    Citation Envoyé par tchize_ Voir le message
    Donc dès le départ, l'adget renvoie un message d'erreur. Ce qui signifie que l'adget n'a simplement pas accès à ton serveur tournant sur 10.0.2.2.
    Où tourne le serveur, ou tourne l'adget? Sui tu tappe l'url dans ton browser, tu as accès au serveur? Quelle est la configuration réseau du serveur? Le range 10.x.x.x n'est pas courant en adressage local, le routage fonctionne correctement dans ton réseau?

    Merci infiniment @tchize_ c'est grâce à vous !!!!!!!!!!
    il m'a suffit de changer de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://10.0.2.2:8080/MyServletProject/DoubleMeServlet
    à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost:8080/MyServletProject/DoubleMeServlet
    Merci Merci Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Client-serveur : java.net.ConnectException
    Par adrien1 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 25/11/2009, 18h59
  2. java.net.ConnectException: Connection timed out: connect
    Par FrenchFrogger dans le forum Services Web
    Réponses: 1
    Dernier message: 10/02/2009, 14h38
  3. Réponses: 2
    Dernier message: 26/02/2008, 15h08
  4. Réponses: 2
    Dernier message: 18/07/2007, 19h26
  5. Erreur java.net. ConnectException:
    Par kenny49 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 27/02/2007, 10h08

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