Tôi không quen với Apache CXF, nhưng những điều sau đây nên áp dụng cho bất kỳ khung công tác dựa trên Java Servlet nào.
Để xác định xem người dùng đã ngắt kết nối chưa (nút dừng, trình duyệt đã đóng, v.v.) máy chủ phải cố gắng gửi gói. Nếu kết nối TCP/IP đã bị đóng, IOException
sẽ bị ngắt.
Về lý thuyết, một ứng dụng Java có thể gửi ký tự khoảng trắng tại các điểm khác nhau trong quá trình xử lý. An IOException
sẽ báo hiệu rằng khách hàng đã biến mất và việc xử lý có thể bị hủy bỏ.
Tuy nhiên, có thể có một vài vấn đề với kỹ thuật này:
Sending nhân vật trong chế biến sẽ gây ra phản ứng là "cam kết", do đó nó có thể là không thể để thiết lập tiêu đề HTTP, cookies, vv dựa trên kết quả của quá trình xử lý serverside dài.
Nếu luồng đầu ra được đệm, ký tự khoảng trắng sẽ không được gửi ngay lập tức, do đó không thực hiện kiểm tra đầy đủ. Có thể sử dụng flush()
làm giải pháp thay thế. Có thể khó thực hiện kỹ thuật này cho một công nghệ khung hoặc công nghệ xem nhất định (JSP, v.v.) Ví dụ, mã hiển thị trang sẽ không thể gửi loại nội dung sau khi phản hồi đã được thực hiện.
Nguồn
2008-09-07 23:14:15