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.