Thông báo lỗi Etat HTTP 404 trong Java Web – Chuyện gì đang xảy ra

Chào các bạn, đây là bài viết đầu tiên trong loạt bài “Tổng hợp lỗi Server Tomcat thường gặp và cách khắc phục” tại blog Ngọc Khương IT. Chúc các bạn code tốt, code ngoan nhé.

Thông báo lỗi Etat HTTP 404 trong Java Web - Chuyện gì đang xảy ra

Đặt vấn đề

Vào vấn đề chính, Etat HTTP 404 là lỗi gì? Cách fix ra sao?

Thật ra, khi nói rằng Etat HTTP 404 là một lỗi thì cũng chưa hẳn là như vậy, nó không phải là lỗi, mà là lỗi nhưng lại không phải là lỗi nhé 😀

Trước khi nói về Etat HTTP 404, mình sẽ nói một chút về 404. 404 là một mã mà server trả về cho người dùng, con số 404 được quy định là kết quả trả về khi server không tìm thấy nội dung nào đó mà người dùng yêu cầu.

Còn Etat HTTP 404 chỉ là cách Tomcat trả về khi không tìm thấy nội dung mà người dùng yêu cầu (Thêm chút ít chữ vào trước 404 thôi mà)

Qua đây, bạn có hiểu rằng người dùng yêu cầu một nội dung nào đó mà server không có, mà đã không có thì trả về cái gì bây giờ. Vậy tạm ném vào mặt thằng người dùng dòng 404 cho chừa cái tội tào lao truy cập lung tung những nội dung không có. Thế thì đây là lỗi do người dùng hay do server. Trường hợp này chắc chắn là người dùng rồi.

Nhưng, mình cũng sẽ trách cái thằng lập trình viên mần (làm) ra cái sản phẩm mà chạy trên Server Tomcat kia (Web chẳng hạn). Ai bảo viết thẻ <a href=””></a> với một link không tồn tại như vậy để người dùng truy cập, để server trả về 404 cho người dùng, mất khách ráng chịu.

Tạm bỏ qua, rủ lòng thương với thằng lập trình viên tý vì nó có công viết code. Bởi anh server cũng có một phần trách nhiệm.

Là thế nào?

Ở đây mình chỉ nói đến Server Tomcat (khi lập trình với Java), còn những lỗi 404 của những ngôn ngữ khác cũng tương tự nhé.

Tomcat có một phần lỗi ở đây, đôi lúc do cấu hình máy tính hơi yếu, chạy nhiều task, eclipse có vấn đề,…khiến cho Server Tomcat không thể hoạt động tốt được, khiến nó không build kịp code hay những config mà chú lập trình viên đã thực hiện. Ví dụ thế này: chú lập trình viên tạo servlet ADuController (Á đù nhé) rồi config cho nó một url pattern trong file web.xml là “/a-du“. Người dùng khi truy cập vào url “/a-du” sẽ bay ngay đến servlet. Vậy là một lỗi Etat HTTP 404 ném ngay vào mặt. Thế này thì do thằng server không build kịp code file ADuController thành class rồi chứ không đâu hết (xem như code đúng, config đúng trong web.xml)

Đó, qua ví dụ trên thì bạn hoàn toàn có thể đổ lỗi cho thằng server rồi nhé (chứ đổ mãi cho anh lập trình viên hay người dùng thì tội lỗi quá)

Cách khắc phục lỗi Etat HTTP 404

Như đã phân tích ở trên thì lỗi Etat HTTP 404 (mà không phải là lỗi) xảy ra do 3 đối tượng: Anh người dùng, chú lập trình viên và thằng server. (Mình sẽ xem chú lập trình viên kiêm việc của anh người dùng nhé vì code xong phải chạy để test thử mà)

– Khi chú lập trình viên truy cập vào một url nào đó (chẳng hạn như: /a-du) mà văng ra lỗi Etat HTTP 404 thì:

  • Vui lòng bảo anh ta xem kỹ lại đã có một url pattern với link kia chưa (thường thì kiểm tra trong web.xml)
  • Đã có một Servlet được mapping với url pattern đó chưa.

– Khi chú lập trình viên đã kiểm tra mọi thứ đều đã ok (không có lỗi gì cả):

  • Vui lòng xem console trên Eclipse (nếu bạn code trên Eclipse) hoặc console của IDE khác có hiện thông báo lỗi gì không. Nếu có thì đọc và fix lỗi thôi.
  • Khi console cũng không có gì. Thật đáng buồn, bạn đã rơi vào tình huống Server build không kịp. Đây là một trong những trường hợp hay gặp và cách fix sẽ mang tính may rủi nhưng đều có căn cứ. (đoạn này dài quá mình viết cách fix bên dưới 😀 )

Cách sửa lỗi Etat HTTP 404 khi Server build chưa kịp code (mình làm trên Eclipse nhé)

– Vào Project > Clean > Clean all projects hoặc chọn Clean projects selected below (nếu bạn chỉ muốn clean một số project nào đó thôi): Mục đích của việc này là dọn dẹp project, tự động build lại project >> Xem thử đã hết 404 chưa, nếu chưa thì thực hiện tiếp.

– Tại tab Servers (Nếu lỡ đóng mất tab Server rồi thì vào Window > Show View > Servers để hiện tab servers trở lại), click phải chuột vào server đang dùng, chọn tiếp Clean…Clean Tomcat Work Directory… để dọn dẹp server Tomcat rồi chạy lại web nhé. (xem ảnh)

Thông báo lỗi Etat HTTP 404 trong Java Web - Chuyện gì đang xảy ra
Clean Server Tomcat

Được chưa?

– Lỡ chưa sửa được nữa thì chỉ còn cách tắt Server, tắt Eclipse và thậm chí có thể tắt máy mở lại (Đây là bước cuối cùng nhé)

– Được chưa? Chắc được rồi 😀 Nhớ rằng dù lỗi gì đi nữa thì đừng bao giờ xoá server ra khỏi Eclipse nhé. (xoá tội nó vì xoá không giải quyết được gì mà chỉ thêm tốn công)

Chưa được nữa thì đổ lỗi do bạn ăn ở không có đức thôi 😛

Cuối cùng, nếu bạn thấy sót trường hợp nào còn có thể gây là lỗi Etat HTTP 404 thì comment bên dưới để mình cập nhật tiếp vào bài viết nhé. Chúc các bạn thành công.

3.7 6 votes
Đánh giá bài viết
Nhận thông báo
Thông báo khi có
guest

0 Bình luận
cũ nhất
mới nhất vote nhiều nhất
Phản hồi nội tuyến
Xem tất cả các bình luận