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

Entrée/Sortie Java Discussion :

java.net.BindException: Address already in use: connect


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Par défaut java.net.BindException: Address already in use: connect
    Bonjour,

    Je me retrouve confronté a un problème:
    J'ai une application qui doit gerer des Province, Departement,Commune, Quartier qui sont des données recupérés dans une base sql server 2008.
    J'ai crée un projet pour testé tout ca. voici comment j'appelle ma classe:
    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
     
    	public static void main(String[] args) throws SQLException {
    		 ArrayList<Province> listProvince = Province.getAll(); //Je récupere la liste de province...
    		 ArrayList<Departement> listDepartement;
    		 ArrayList<Commune> listCommune;
     
    //J'affiche le contenu. Chacune des classe comportent des methodes me permettant de recuperer les éléments relatifs à un objet.
    		 for(int i=0; i<listProvince.size(); i++){
    			 listDepartement = listProvince.get(i).getDepartementList();
    			 System.out.println(listProvince.get(i).getName());
    			 for(int j=0; j<listDepartement.size();j++){
    				 listCommune = listDepartement.get(j).getCommuneList();
    				 System.out.println("|"+listDepartement.get(j).getName());
    				 for(int k=0; k<listCommune.size();k++){
    					 System.out.println("||"+listCommune.get(k).getName()+"("+listCommune.get(k).getTypeCommune()+")");
    					 for(int l=0;l<listCommune.get(k).getQuartierList().size();l++){
    						 System.out.println("--->"+listCommune.get(k).getQuartierList().get(l).getName());
    					 }
    				 }
    			 }
    		 }
    	}
    Et voici l'exemple de methode que j utilise dans chacune de mes classes (elles ont la même structure...) :
    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
     
    		Connection connex = ConnexionBase.getConnex();
    		ArrayList<Province> provinceList = new ArrayList<Province>();
    		try {
    			Province province;
    			ResultSet rs = null;
    			String requete = "select * from dbo.PROVINCE ORDER BY PRO_LIBEL";
    			PreparedStatement stmt = connex.prepareStatement(requete);
    			rs = stmt.executeQuery();
    			while (rs.next()) {
    					province = new Province();
    					province.setId(rs.getInt("PRO_CODE"));
    					province.setName(rs.getString("PRO_LIBEL"));
    				provinceList.add(province);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		}finally{
    			connex.close();
    		}
    		return provinceList;
    Ma classe de connexion
    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
     
        public static Connection getConnex(){
    	try {
    	    com.microsoft.sqlserver.jdbc.SQLServerDataSource ds = new com.microsoft.sqlserver.jdbc.SQLServerDataSource();
    	    ds.setServerName("192.168.8.51");
    	    ds.setPortNumber(1433);
    	    ds.setDatabaseName("mabase");
    	    ds.setUser("user");
    	    ds.setPassword("pass");
    	    Connection con = ds.getConnection();
    	    return con;
    	} catch (Exception e) {
    	    System.out.println("Erreur de connection à la base:"+e.getMessage());
    	}
    	return null;   
        }
    Et voici mon erreur sur la console:
    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
     
    // Au bout de 300-400 lignes...
    ||Peni(Canton)
    --->Carrefour peny
    --->Moureri
    --->Peny 2
    |Ogoulou
    ||Dibwa(Canton)
    Erreur de connection à la base:Échec de la connexion TCP/IP à l'hôte . java.net.BindException: Address already in use: connect
    java.lang.NullPointerException
    	at com.projet.model.Quartier.<init>(Quartier.java:31)
    	at com.projet.model.Commune.getQuartierList(Commune.java:114)
    	at com.projet.main.Exec.main(Exec.java:30)
    java.lang.NullPointerException
    	at com.projet.model.Quartier.<init>(Quartier.java:45)
    	at com.projet.model.Commune.getQuartierList(Commune.java:114)
    	at com.projet.main.Exec.main(Exec.java:30)
    Exception in thread "main" java.lang.NullPointerException
    	at com.projet.main.Exec.main(Exec.java:30)
    Voila je pense que je doit faire quelque chose de la mauvaise maniere...
    Les sujet traitant de cette erreur me parlent tous d'une appli qui utilise deja un port or la je n'ai que cette application qui tourne et le probleme surgit de manière aléatoire (jamais au même moment)...
    Merci de m'éclairer.

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2008
    Messages : 108
    Par défaut
    moi j'ai eu ce problème avec eclipse, en réalisant une appli client serveur, parfois l'application plante, et lorsque je relançais l'execution, il me mettait que le port était deja utilisé par la JVM (exception du genre "port" already bind in the JVM) quelque chose comme cela

    je quittait relancé eclipse et la ca fonctionnait.

    Après j'ai entendu que certain process windows pouvaient bloquer certain port à leur lancement (même si tu a l'impression qu'il n'y a que ton application qui tourne ce n'est pas forcement le cas en réalité ^^)

    a tu eu l'occasion d'essayer de passer par un autre port ?

    car ca a l'air d'être exactement ca le problème, tu essaye de te connecter au port 1433 mais ce port est déjà occupée pour traiter d'autre action.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Mars 2008
    Messages : 160
    Par défaut
    Merci pour ta réponse, aucun problèmes de mon coté... Je vais quand même voir si cela ne peut pas venir du serveur...

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Pourrais-tu remplacer ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch (Exception e) {
    	    System.out.println("Erreur de connection à la base:"+e.getMessage());
    	}
    Par celui-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    catch (Exception e) {
    	    e.printStackTrace();
    	}
    Aussi, l'utilisation de classes spécifiques à un driver de base de données n'est pas recommandé. Il existe une api jdbc en java et il vaut mieux l'utiliser pour obtenir tes connections. Comme indiqué sur le site de microsoft, il faut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
     
    String connectionUrl = "jdbc:sqlserver://192.168.8.51:1433;" +
       "databaseName=AdventureWorks;user=MyUserName;password=*****;";
    Connection con = DriverManager.getConnection(connectionUrl);

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2015, 14h03
  2. Erreur "java.net.BindException: Address already in use: JVM_Bind"
    Par baaab dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 15/06/2013, 17h35
  3. address already in use
    Par sleigh dans le forum Administration système
    Réponses: 0
    Dernier message: 14/09/2007, 10h03
  4. Bind Exception: Address already in use: connect
    Par metalcoyote dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 19/06/2007, 09h55
  5. Address already in use
    Par horkets dans le forum Réseau
    Réponses: 4
    Dernier message: 29/10/2006, 21h08

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