Tomcat java.net.BindException: Adresa koja se već koristi u Javi

1. Pregled

U ovom ćemo brzom vodiču pogledati što uzrokuje zajedničko java.net.BindingException Pogreška: Adresa se već koristi pogreška i kako se s njom možemo nositi.

2. Kada se dogodi pogreška?

Kao što znamo, poslužitelj Apache Tomcat prema zadanim postavkama koristi port 8080.

Brojevi priključaka kreću se od 0 do 65535, međutim, luku u bilo kojem trenutku može zauzeti samo jedna aplikacija.

Iznimka navodi da aplikacija pokušava koristiti priključak koji je već zauzet nekim drugim postupkom ili nismo pravilno zaustavili poslužitelj Tomcat.

3. Dijagnosticiranje

Da bismo riješili ovu pogrešku, možemo ili ubiti uslugu koja uzima taj priključak ili možemo promijeniti naš web poslužitelj da radi na drugoj luci.

3.1. Otkrivanje sukoba

U ovom slučaju moramo saznati koja aplikacija koristi port.

The netstat naredba se može koristiti za otkrivanje trenutnih TCP / IP veza.

Ispod su naredbe koje se mogu koristiti za pronalaženje i ubijanje procesa u različitim okruženjima.

U sustavu Windows, posljednji stupac izlaza dat će nam ID procesa usluge koja se trenutno izvodi na 8080:

netstat -ano | pronađi "8080"

Izlaz:

TCP 0.0.0.0:8080 0.0.0.0-0 SLUŠANJE 21376 

Ovdje je 21376 id procesa koji sluša na portu 8080.

Na Unix / Linux okruženju:

netstat -hlače | grep "8080"

Izlaz:

TCP 0.0.0.0:8080 0.0.0.0-0 SLUŠANJE 21376 

Isto kao i Windows izlaz. Ovdje je 21376 id procesa koji sluša na portu 8080.

Na Mac OS X:

lsof -t -i: 8080

Izlaz:

21376

Prikazat će samo PID.

3.2. Pokretanje poslužitelja na drugom portu

Ako znamo koji se postupak izvodi, zašto se izvodi i da li treba biti pokrenut na toj luci, možemo promijeniti port na kojem se naša poslužiteljska aplikacija pokušava pokrenuti.

Da bismo promijenili Tomcat port, moramo urediti poslužitelj.xml datoteka. Uraditi ovo:

  • Otvorena tomcat / konf mapu
  • Uredi poslužitelj.xml
  • zamijenite priključak priključka s nova luka
  • ponovno pokrenite tomcat poslužitelj

The poslužitelj.xml datoteka izgleda ovako:

Sada će Tomcat raditi na prilagođenom portu.

3.3. Ubijanje usluge trčanja

Da bismo zaustavili pokrenuti postupak, možemo koristiti ubiti naredba.

Koristeći ID procesa koji smo pronašli u 3.1., Trebat će nam različite naredbe, ovisno o operativnom sustavu koji pokrećemo.

U Windows okruženju:

taskkill / F / PID 21376

U Unix / Linux okruženju:

ubiti - 21376

Mac OS X okruženje:

ubiti -9 21376

4. Zaključak

Kao što je spomenuto na početku članka, java.net.BindingException je rasprostranjena, ali lako rješiva ​​pogreška.

Glavna poteškoća je u pronalaženju sukobljene usluge koja koristi priključak s netstat primjena terminala i zatim odlučivanje o odgovarajućem djelovanju.

Jednom otkriven, ispravak je jednostavan.