Tôi đang triển khai ứng dụng GWT 2.4 trên Glassfish 3.0.1. Tôi có thể dễ dàng truy cập vào ứng dụng của tôi qua http://host:PORT/appContext/
Tuy nhiên, khi tôi đảo ngược proxy ứng dụng với Apache tôi nhận được một ngoại lệ với các đoạn trích sau đây (từ bản ghi Glassfish):Hiệu ứng của proxy ngược trên ứng dụng GWT là gì?
ngoại lệ khi cử đến RPC gọi com.google. gwt.user.client.rpc.SerializationException: Gõ 'com.ozdokmeci.basicgwtproject.shared.GroupData' không thể gán cho 'com.google.gwt.user.client.rpc.IsSerializable' và không có bộ nối tiếp trường tùy chỉnh . Vì mục đích bảo mật, loại này sẽ không được đăng.
Triển khai IsSerializable
giải quyết sự cố theo thông báo Chi trong related question. Ngoài ra còn có cách giải quyết khác trong câu hỏi liên quan.
Câu hỏi của tôi là nguyên nhân cơ bản của vấn đề này và làm thế nào hai giải pháp dường như không liên quan (triển khai giao diện điểm đánh dấu và mở rộng một lớp servlet) giải quyết vấn đề này? Ngoài ra có bất kỳ bất lợi cho cả hai phương pháp được đề cập trong related question?
Lưu ý: Ngoại lệ không xảy ra nếu ứng dụng được truy cập trực tiếp.
Lưu ý2: Lớp liên quan đến ngoại lệ đã triển khai giao diện Serializable, tương đương với IsSerializable khi có liên quan đến GWT.
Bạn có chắc chắn ngoại lệ xảy ra khi nó được truy cập qua Apache - bạn cần kiểm tra giả định đó. Tôi nghĩ rằng lỗi đang xảy ra ngay cả khi bạn truy cập trực tiếp vào nó. Ngoại lệ không có gì để làm với proxy ngược. – gkamal
Ngoại lệ chỉ xảy ra khi nó được proxy phía sau Apache (tôi không gợi ý rằng Apache đang gây ra nó). Khi tôi truy cập ứng dụng trực tiếp, không có ngoại lệ nào xảy ra. Đây không phải là một giả định và tôi đã kiểm tra nhật ký nhiều lần trước khi đăng câu hỏi. Tôi biết rằng ngoại lệ không liên quan trực tiếp với proxy ngược và đó là lý do tại sao tôi hỏi câu hỏi này :) – Kaan
Tôi nghĩ rằng có điều gì đó không ổn - khi bạn nói không apache là máy chủ lưu trữ/devmode hoặc truy cập phiên bản js đã biên dịch . Bạn có thể kiểm tra xem cả hai đang chạy cùng một phiên bản của mã (bộ nhớ đệm, xây dựng không đúng vv được loại trừ). Thực hiện một số thay đổi có thể nhìn thấy trên trang chính và kiểm tra xem thay đổi có xuất hiện thông qua proxy apache hay không. – gkamal