Comment obtenir le GWT base de l'URL ou le Nom du Module à partir de l'GWT portée du serveur?
Je sais que vous pouvez obtenir le nom du module GWT côté client à l'aide GWT.getModuleName()
ou getHostPageBaseURL()
, mais est-il possible d'accéder à partir du serveur?
Ce que je suis après est l'URL de base de l'application déployée. Par exemple, si l'application GWT est déployé comme http://foo.com/deploy1/MyModule/
ce que je veux savoir, c'est que la demande est faite à partir de l'URL de base de http://foo.com/deploy1/
Simplement obtenir l'URI de la requête HTTP qui me donnera la pleine chemin d'accès du module, quand je veux vraiment la base (il sera déployé dans les différents sous-chemins dans le même domaine)
Pour clarifier, je peux obtenir l'URI de la
HttpServletRequest
, mais qui me donne http://foo.com/deploy1/MyModule/
. J'essaie d'éviter de coder en dur le nom du module MyModule
ou de la dupliquer dans un fichier de propriétés. Il est défini par GWT module fichier xml, mais je préfère ne pas avoir la charge de la garder en synchronisation avec un autre fichier(s) de code source ou autre.OriginalL'auteur dpdearing | 2011-06-27
Vous devez vous connecter pour publier un commentaire.
getContextPath()
vous donnera le/deploy1
chemin.Si vous avez besoin de la totalité de l'URL, vous pouvez facilement le reconstruire à partir de l'autre
HttpServletRequest
propriétés, ou vous pouvez commencer avecgetRequestURL
et de modifier le résultat de remplacer le chemin partie.OriginalL'auteur Thomas Broyer
Vous avez besoin de comprendre la relation entre le serveur et le client dans GWT.
Donc, vous cherchez à les Salutations GWT RPC stub et vous voyez le client, le serveur, les dossiers partagés (et vous pouvez ajouter le dossier public de la place de html, jsp ou d'autres fichiers directement accessible par le chemin d'accès du module).
Ce que vous avez probablement ne réalisent pas, c'est que du côté serveur, le répondeur pour un client demande RPC n'a pas besoin d'être convaincu par une classe dans le module. Dans le module, vous auriez la requête RPC définition de l'interface qui permet de définir le côté serveur du répondeur chemin @RemoteServiceRelativePath("/hello").
Pour satisfaire la demande RPC thro le chemin "/bonjour", vous n'avez pas besoin de code de votre servlet à l'intérieur de n'importe quel module du dossier "serveur". Vous pourriez même avoir
ou
En fait, j'ai une connexion JSP qui accepte la demande de RPC à partir d'un petit nombre de modules et il doit trouver le module qui émet la demande.
Ou vous pourriez être en utilisant RequestBuilder ou en plaçant un JSON javascript-inclure la demande.
Avec cela à l'esprit, comment un serveur RPC côté de répondeur être contraint d'être défini par aucun module, peu importe qui il est placé à l'intérieur du dossier d'un module particulier? Il vous suffit d'avoir le client en informe le serveur-côté répondeur ce module appartient le client. À l'aide d'une Carte ou table de hachage comme le type de données RpC transmission serait très utile. Dans le cas où vous utilisez REquestFactory, l'identification d'une entité serait en mesure de dire à votre serveur ce que le module est par le biais de l'entité objet de l'espace de noms.
http://h2g2java.blessedgeek.com/2009/08/gwt-rpc.html
OriginalL'auteur Blessed Geek
Vous pouvez consulter le
Referer
en-tête http: http://en.wikipedia.org/wiki/HTTP_referrerReferer
me donner la pleine subpath?OriginalL'auteur Peter Knego
2 ans de retard, mais quelqu'un d'autre ait la même question.
De toute façon, vous pouvez obtenir de l'exactitude des données que vous le souhaitez à l'aide
GWT.getModuleBaseURL()
.RemoteServiceServlet.getRequestModuleBasePath()
.OriginalL'auteur Davor