1. Gambaran keseluruhan
Dalam tutorial ringkas ini, kita akan melihat apa yang menyebabkan ralat umum java.net.BindingException: Kesalahan alamat sudah ada dalam Penggunaan dan bagaimana kita dapat menanganinya.
2. Bilakah Kesalahan Berlaku?
Seperti yang kita ketahui, pelayan Apache Tomcat, secara lalai, menggunakan port 8080.
Nombor port berkisar antara 0 hingga 65535, namun port hanya dapat dihuni oleh satu aplikasi setiap saat .
Pengecualian menyatakan bahawa aplikasi sedang berusaha menggunakan port yang sudah diambil oleh proses lain, atau kami tidak menghentikan pelayan Tomcat dengan betul.
3. Mendiagnosis
Untuk menyelesaikan ralat ini, kita boleh mematikan perkhidmatan yang mengambil port itu atau boleh mengubah pelayan web kita untuk berjalan di port lain.
3.1. Menemui Konflik
Dalam kes ini, kita perlu mengetahui aplikasi mana yang menggunakan port.
The netstat perintah boleh digunakan untuk menerokai semasa sambungan TCP / IP.
Di bawah ini adalah arahan yang dapat digunakan untuk mencari dan membunuh proses tersebut dalam lingkungan yang berbeza.
Pada Windows, lajur keluaran terakhir akan memberi kami id proses perkhidmatan yang sedang berjalan pada tahun 8080:
netstat -ano | find "8080"
Pengeluaran:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376
Di sini, 21376 adalah id proses dari proses yang sedang mendengar di port 8080.
Pada Persekitaran Unix / Linux :
netstat -pant | grep "8080"
Pengeluaran:
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 21376
Sama dengan output Windows. Di sini, 21376 adalah id proses dari proses yang sedang mendengar di port 8080.
Pada Mac OS X:
lsof -t -i :8080
Pengeluaran:
21376
Ia akan memaparkan PID sahaja.
3.2. Menjalankan Pelayan di Pelabuhan Lain
Sekiranya kita tahu proses apa yang sedang berjalan, mengapa ia berjalan dan yang perlu dijalankan di port itu, kita dapat mengubah port yang cuba dijalankan oleh aplikasi pelayan kita.
Untuk menukar port Tomcat, kita perlu mengedit fail server.xml . Untuk membuat ini:
- Buka folder tomcat / conf
- edit pelayan.xml
- gantikan port penyambung dengan port baru
- mulakan semula pelayan tomcat
The server.xml fail kelihatan seperti ini:
Sekarang Tomcat akan berjalan di port yang disesuaikan.
3.3. Membunuh Perkhidmatan yang Berjalan
Untuk menghentikan proses berjalan, kita dapat menggunakan perintah kill .
Dengan menggunakan ID proses yang kami dapati di 3.1., Kami memerlukan perintah yang berbeza bergantung pada Sistem Operasi yang kami jalankan.
Pada persekitaran Windows:
taskkill /F /PID 21376
Pada persekitaran Unix / Linux:
kill - 21376
Persekitaran Mac OS X:
kill -9 21376
4. Kesimpulan
Seperti yang disebutkan di awal artikel, java.net.BindingException adalah ralat yang lazim tetapi mudah diselesaikan.
Kesukaran utama adalah mencari perkhidmatan yang bertentangan menggunakan port dengan aplikasi terminal netstat kemudian memutuskan tindakan yang sesuai.
Setelah ditemui, penyelesaiannya mudah.