“Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use” là đoạn đầu của thông báo lỗi từ server Tomcat. Nguyên văn của nó thế này: “Several ports (8005, 8080, 8009) required by Tomcat v8.5 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).”. (v8.5 là version Tomcat, của các bạn có thể là v7.0, v8.0 hay v9.0 tuỳ theo version đang dùng).
Vậy em nó từ “Vì Sao” nào đến?
Khi gặp lỗi này tức là server đang nhắc với bạn rằng có một cái gì đó đang chạy và dành lấy cổng 8005, 8080 hoặc 8009 của nó mất rồi. Nó yêu cầu bạn phải kiểm tra những tiến trình nào đang chạy thì buộc dừng lại để cho nó hoàn thành tiếp nhiệm vụ. Thông thường thì có ít phần mềm chạy trên cổng 8005, 8080, 8009 nhưng không phải là không có. Khi có lỗi xảy ra, bạn thử kiểm tra trong máy tính có phần mềm nào đáng nghi ngờ đang chạy trên các cổng đó không. Nếu có thì tắt những chương trình đó đi. (Nếu phần mềm đó thật sự quan trọng, luôn muốn chạy thì bắt buộc phải đổi lại port cho tomcat, nhưng điều này là không khuyến khích).
Nguyên nhân thường gặp đến từ chính server Tomcat
Lỗi này hay gặp nhất là từ server Tomcat mà ra. Có rất nhiều nguyên nhân nhỏ xung quanh server của bạn: Có thể là do server lỗi, mà cũng có thể là do bạn chạy nhầm.
1. Lỗi do server
Khi server đang tỏ ra ì ạch, chậm chạp, bạn run project lần thứ nhất. Chưa thấy động tĩnh gì, bạn tiếp tục run project lần thứ hai. Và cứ như thế, có thể bạn đã run cả chục lần. Thế là server chạy lần này, chạy lần khác, liên tiếp. Lần đầu khi chạy tomcat sẽ dùng các port 8005, 8080, 8009, những lần sau server sẽ không dùng được nữa vì lần chạy trước vẫn đang dùng mà chưa dừng lại. Thế là lỗi rồi đó.
2. Lỗi do bạn chạy nhầm server
Nhầm server là thế nào?
Nếu IDE (Eclipse,…) của bạn cài nhiều server Tomcat với các version khác nhau. Bạn sẽ rất dễ gặp trường hợp này. Lúc đầu bạn chạy project trên Tomcat v7.0 Server nhưng lúc sau lại chạy trên Tomcat v8.5 (hoặc v8.0, v9.0,…) trong khi server trước vẫn chưa được stop thì gặp lỗi trên là điều không thể tránh.
Cách khắc phục lỗi
Trước tiên là nguyên lý: – Đối với trường hợp lỡ có những chương trình khác chạy trên port 8005, 8080, 8009 thì bạn tìm cách tắt chúng nó đi. – Đối với trường hợp nguyên nhân chính đến từ server Tomcat: Bạn tìm đến chương trình tomcat đang chạy trên máy và tắt đi. Thường thì 2 tiến trình có tên java hoặc javaw sẽ chạy nếu đã có tomcat chạy trước đó. Tìm và tắt các tiến trình đó đi. => Hiểu nguyên lý để các bạn có thể xử lý lỗi trên các nền tảng như MacOS, Windows và cả Linux.
Cách xử lý lỗi trên Windows (Linux và Mac bạn làm tương tự nhé)
+ Tìm đến Task Manager (Click chuột phải vào thanh Taskbar chọn Task Manager) + Ở tab Processes bạn tìm chương trình nào có tên “Java(TM) Platform SE binary” hoặc một chương trình nào đó có tên java. (Để chắc chắn là nó, click chuột phải vào tên chương trình đó trong processes, chọn properties, ở tab General, bạn nhìn thấy javaw.exe là đúng nhé) + Cuối cùng, click nút End task để tiêu diệt nó ngay và luôn.
Đến đây xem như hoàn tất, nếu chưa được nữa thì tắt IDE (Eclipse,…) rồi bật lại bạn nhé. (Đảm bảo sau bước này thành công 1000%) Như vậy, mình đã hoàn thành bài viết thứ 4 trong loạt bài “Tổng hợp lỗi Server Tomcat thường gặp và cách khắc phục“. Nếu có thắc mắc hay góp ý thêm về lỗi này, các bạn vui lòng comment bên dưới để cùng trao đổi nhé.
cho hỏi nếu không tim thấy file nào là java thì phải làm sao vậy
Ý của bạn ở đây là Exception: ClassNotFoundException hay sao bạn nhỉ. Nếu đúng là lỗi đó thì remove project khỏi server đang chạy, clean project và tiến hành chạy lại thử nhé.
tuyệt vời
nếu vào task manager mà tìm vẫn kh thấy phần javaw.exe thì còn cách fix nào kh nhỉ?
cám ơn tiền bối
Cảm ơn bạn đã theo dõi blog nhé 😉