trzeba zrozumieć związek między serwerem a klientem w GWT.
Patrzysz więc na zwykły kod Greetings GWT RPC i widzisz klienta, serwer, foldery współdzielone (możesz dodać folder publiczny, aby umieścić html, jsp lub inne pliki bezpośrednio dostępne przez ścieżkę modułu).
Prawdopodobnie nie zdajemy sobie sprawy, że odpowiedź serwera na żądanie klienta RPC nie musi być spełniona przez klasę w module. Wewnątrz modułu będziesz miał interfejs definiowania żądań RPC, w którym zdefiniujesz ścieżkę odpowiadającą po stronie serwera @RemoteServiceRelativePath ("/ hello").
Aby spełnić żądanie RPC po ścieżce "/ hello", nie trzeba kodować serwletu w folderze "serwera" jakiegokolwiek modułu. Można nawet mieć
@RemoteServiceRelativePath("/hello.jsp")
lub
@RemoteServiceRelativePath("/hello.php")
w rzeczywistości, mam JSP logowania, który akceptuje żądania RPC z kilku modułów i musi dowiedzieć się, który moduł jest emitując żądania.
Lub możesz używać RequestBuilder lub składania żądania JSON javascript-include.
Mając to na uwadze, w jaki sposób ogranicznik RPC po stronie serwera byłby ograniczony do definiowania przez dowolny moduł, niezależnie od tego, czy jest umieszczony w folderze określonego modułu? Wystarczy, że klient poinformuje podmiot odpowiadający po stronie serwera, do którego modułu należy klient. Używanie Map lub HashMap jako typu danych do transmisji RpC byłoby bardzo pomocne. Jeśli używasz REquestFactory, identyfikacja jednostki będzie w stanie poinformować twój serwer o tym, co moduł przechodzi przez przestrzeń nazw obiektu.
http://h2g2java.blessedgeek.com/2009/08/gwt-rpc.html
Aby wyjaśnić, mogę uzyskać identyfikator URI z 'HttpServletRequest', ale to daje mi' http: // foo.com/deploy1/MyModule/'. Próbuję uniknąć sztywnego kodowania nazwy modułu 'MyModule' lub duplikowania go w pliku właściwości. Jest to zdefiniowane w pliku xml modułu GWT, ale wolałbym nie być obciążonym utrzymywaniem synchronizacji z innym kodem źródłowym pliku lub z innymi. – dpdearing