Tôi gặp sự cố này với GWT khi nó nằm sau proxy ngược. Ứng dụng phụ trợ được triển khai trong một ngữ cảnh - hãy gọi nó/ngữ cảnh.Vấn đề với GWT đằng sau proxy ngược - hoặc nginx hoặc apache
Ứng dụng GWT hoạt động tốt khi tôi nhấn nó trực tiếp:
tôi có thể cấu hình một proxy ngược trước mặt nó nó. Dưới đây là ví dụ nginx tôi:
upstream backend { server 127.0.0.1:8080; } ... location/{ proxy_pass http://backend/context/; }
Tuy nhiên, khi tôi chạy qua proxy ngược, GWT bị nhầm lẫn, nói:
2009-10-04 14:05:41.140:/:WARN: Login: ERROR: The serialization policy file '/C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc' was not found; did you forget to include it in this deployment? 2009-10-04 14:05:41.140:/:WARN: Login: WARNING: Failed to get the SerializationPolicy 'C7F5ECA5E3C10B453290DE47D3BE0F0E' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result. 2009-10-04 14:05:41.292:/:WARN: StoryService: ERROR: The serialization policy file '/0445C2D48AEF2FB8CB70C4D4A7849D88.gwt.rpc' was not found; did you forget to include it in this deployment? 2009-10-04 14:05:41.292:/:WARN: StoryService: WARNING: Failed to get the SerializationPolicy '0445C2D48AEF2FB8CB70C4D4A7849D88' for module 'https://hostname:444/'; a legacy, 1.3.3 compatible, serialization policy will be used. You may experience SerializationExceptions as a result.
Nói cách khác, GWT không nhận được từ đó nó cần phải prepend/context/hen tìm C7F5ECA5E3C10B453290DE47D3BE0F0E.gwt.rpc, nhưng chỉ khi yêu cầu đến proxy. Giải pháp là thêm ngữ cảnh vào url cho trang web:
location /context/ { proxy_pass http://backend/context/; }
nhưng điều đó có nghĩa là ngữ cảnh hiện là một phần của url mà người dùng nhìn thấy và điều đó thật xấu.
Bất kỳ ai biết cách làm cho GWT hài lòng trong trường hợp này?
phiên bản phần mềm:
GWT - 1.7.0 (cùng một vấn đề với 1.7.1)
Jetty - 6.1.21 (nhưng cùng một vấn đề tồn tại dưới tomcat)
nginx - 0.7.62 (cùng một vấn đề dưới apache 2.x)
Tôi đã xem lưu lượng truy cập giữa proxy và phần phụ trợ bằng cách sử dụng DonsProxy, nhưng không có gì đáng chú ý ở đó.
Tôi không nhất thiết cần những thứ được tách ra trong thời gian ngắn - nhưng trình tạo ứng dụng đặt mô-đun theo ngữ cảnh theo mặc định và tôi có thể muốn phân tách các phần nhất định thành các mô-đun khác. Vá mã nguồn (tới GWT) có vẻ giống như câu trả lời đúng, vì dường như mọi thứ đều được định cấu hình chính xác. –
Cách tôi nhìn thấy nó, bạn đã có một vấn đề lộn xộn, và những người khác có thể được hưởng lợi từ việc sửa chữa của bạn, do đó, một bản vá sẽ cực kỳ có giá trị. Nếu bạn đi tuyến đường này, hãy chắc chắn để đưa tập tin bản vá của bạn lên trên Gist (http://gist.github.com/) hoặc tương tự, và liên kết câu hỏi này với nó, trong trường hợp các bản vá không được chấp nhận ngay lập tức. –