1. Ikhtisar
Dalam tutorial singkat ini, kita akan melihat apa yang menyebabkan kesalahan java.net.BindingException umum : Alamat sudah dalam Gunakan kesalahan dan bagaimana kita bisa mengatasinya.
2. Kapan Kesalahan Terjadi?
Seperti kita ketahui, server Apache Tomcat secara default menggunakan port 8080.
Nomor port berkisar dari 0 hingga 65535, namun, port hanya dapat ditempati oleh satu aplikasi kapan saja .
Pengecualian menyatakan bahwa aplikasi mencoba menggunakan porta yang sudah diambil oleh proses lain, atau kami tidak menghentikan server Tomcat dengan benar.
3. Mendiagnosis
Untuk mengatasi kesalahan ini, kita dapat mematikan layanan yang mengambil port tersebut atau dapat mengubah server web kita untuk berjalan di port lain.
3.1. Menemukan Konflik
Dalam hal ini, kita perlu mencari tahu aplikasi mana yang menggunakan port tersebut.
The netstat perintah dapat digunakan untuk menemukan koneksi TCP / IP saat ini.
Di bawah ini adalah perintah yang dapat digunakan untuk menemukan dan menghentikan proses di lingkungan yang berbeda.
Di Windows, kolom keluaran terakhir akan memberi kita id proses dari layanan yang saat ini berjalan di 8080:
netstat -ano | find "8080"
Keluaran:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376
Di sini, 21376 adalah id proses dari proses yang mendengarkan pada port 8080.
Di Lingkungan Unix / Linux :
netstat -pant | grep "8080"
Keluaran:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376
Sama seperti keluaran Windows. Di sini, 21376 adalah id proses dari proses yang mendengarkan pada port 8080.
Di Mac OS X:
lsof -t -i :8080
Keluaran:
21376
Ini akan menampilkan PID saja.
3.2. Menjalankan Server di Port Lain
Jika kita tahu proses apa yang sedang berjalan, mengapa itu berjalan dan itu perlu dijalankan pada port itu, kita dapat mengubah port yang aplikasi server kita coba jalankan.
Untuk mengubah port Tomcat, kita perlu mengedit file server.xml . Untuk melakukan ini:
- Buka folder tomcat / conf
- edit server.xml
- ganti port konektor dengan port baru
- restart server kucing jantan
File server.xml terlihat seperti ini:
Sekarang Tomcat akan berjalan di port yang disesuaikan.
3.3. Membunuh Layanan Lari
Untuk menghentikan proses yang sedang berjalan, kita bisa menggunakan perintah kill .
Menggunakan ID proses yang kami temukan di 3.1., Kami memerlukan perintah yang berbeda tergantung pada Sistem Operasi yang kami jalankan.
Di lingkungan Windows:
taskkill /F /PID 21376
Di lingkungan Unix / Linux:
kill - 21376
Lingkungan Mac OS X:
kill -9 21376
4. Kesimpulan
Seperti yang disebutkan di awal artikel, java.net.BindingException adalah kesalahan yang lazim tetapi mudah diselesaikan.
Kesulitan utama adalah menemukan layanan yang berkonflik menggunakan port dengan aplikasi terminal netstat kemudian memutuskan tindakan yang sesuai.
Setelah ditemukan, perbaikannya mudah.