Theo mặc định, Tomcat sẽ gửi lại một số nội dung HTML cho khách hàng nếu nó gặp phải một lỗi HTTP 404. Tôi biết rằng thông qua web.xml
<error-page>
can be configured để tùy chỉnh nội dung này.Vô hiệu hóa tất cả nội dung phản hồi lỗi HTTP mặc định trong Tomcat
Tuy nhiên, tôi chỉ muốn Tomcat gửi không gửi bất kỳ nội dung nào về nội dung phản hồi (tôi vẫn muốn mã trạng thái). Có cách nào để dễ dàng cấu hình điều này?
Tôi đang cố tránh A) gửi nội dung trống trên luồng phản hồi từ Servlet của tôi và B) định cấu hình các trang lỗi tùy chỉnh cho toàn bộ trạng thái lỗi HTTP trong số web.xml
của mình.
Đối với một số nền, Tôi đang phát triển một API HTTP và đang kiểm soát nội dung trả lời của riêng tôi. Vì vậy, đối với một HTTP 500, ví dụ, tôi đang điền một số nội dung XML vào phản hồi có chứa thông tin lỗi. Đối với các tình huống như HTTP 404, trạng thái phản hồi HTTP đủ cho khách hàng và nội dung tomcat đang gửi là không cần thiết. Nếu có một cách tiếp cận khác, tôi mở cửa để nghe nó.
Chỉnh sửa: Sau khi tiếp tục điều tra, tôi vẫn không thể tìm thấy nhiều trong cách giải pháp. Nếu ai đó dứt khoát có thể nói điều này là không thể, hoặc cung cấp một nguồn tài liệu với bằng chứng rằng nó sẽ không hoạt động, tôi sẽ chấp nhận điều đó như một câu trả lời và thử và làm việc xung quanh nó.
tôi không quá tải ý nghĩa của các mã, tôi đang sử dụng chúng như họ đang dự định. Đây là một API REST - ví dụ, nếu ai đó thực hiện GET trên một tài nguyên nhất định trong API của tôi và tôi không tìm thấy nó, tôi sẽ đặt trạng thái phản hồi thành 404. Nếu tôi gặp lỗi lạ , Tôi đặt trạng thái 500 và cung cấp một số nội dung lỗi trong phản hồi. Nhưng tôi muốn kiểm soát độc quyền nội dung này - tôi không muốn Tomcat trả lại HTML hoặc bất kỳ thứ gì khác. Nếu nội dung được trả lại, tôi muốn Servlet của tôi là người làm việc đó. –
tôi chỉ còn thấy rằng Servlet 3 dường như cho phép cho một-bắt-tất cả: http://static.springsource.org/spring/docs/3.2.0.BUILD-SNAPSHOT/reference/html/mvc.html# mvc-ann-customer-servlet-container-error-page –
@ErichEichinger - Đó là thông tin hữu ích, cảm ơn bạn đã vượt qua nó. –