Ich muss eine einfache Nachricht an den Server senden, die auf gwt basiert. Wie wir wissen, befindet sich in der Nutzlast der Nachricht der starke Hash-Name der Serialisierungsrichtliniendatei des Dienstes, an den wir die Nachricht senden wollen. Wo kann ich in der Server-Client-Kommunikation diesen Hash erhalten? Der Webbrowser tut es, ich habe die Kommunikation mit Fiddler oder Firebug analysiert und habe keine Nachricht vom Server mit diesem Hash gesehen. Also, woher weiß der Webbrowser des Clients, welcher starke Hash-Name in der Nutzlast der Nachricht an den Dienst gesendet wird?
Antwort
Zu viele Anzeigen?Es ist in der generierten JS hart kodiert, und die Art und Weise, wie der Client kommuniziert à der Server was Version des von ihm genutzten Dienstes.
Mit GWT-RPC müssen der Client und der Server synchron sein (obwohl ich glaube, dass man technisch gesehen mehrere Versionen Ihres Dienstes -wie von den Clients bekannt- zur gleichen Zeit), und das ist, wie sie es überprüfen: der Client sagt "hier ist, wie ich weiß, wie ich mit Ihnen sprechen kann" und der Server prüft zuerst, ob es für ihn in Ordnung ist (lädt die Serialisierungsrichtlinie) und fährt entweder fort oder schlägt sofort mit einer IncompatibleRemoteServiceException
.
Es wird also praktisch nie gesendet. von den Server (nun, im JS-Code ja, aber jetzt durch RPC).