2008-10-11 6 views
2

Nous avons un service Web qui est déployé sur 2 machines distinctes dans des emplacements différents. Est-il possible de surveiller l'URL qu'une personne utilise pour appeler notre service web en utilisant le code java? Nous avons configuré une url 3DNS et nous souhaitons que tous les clients utilisent cette URL comme opposée en tapant les cases directement avec les numéros de port corrects dans l'url.Récupération de l'URL d'appel dans Java Webservice

Merci Damien

Répondre

2

Avez-vous pris un coup d'oeil:

@Resource 
WebServiceContext wsContext; 

Cela renverra le contexte du message en cours envoyé à votre webservice. J'ai pu obtenir l'adresse IP de l'utilisateur à partir de cela.

Cela suppose que vous utilisez Java.

0

Vous pouvez regarder dans quelque chose comme OWSM (Oracle Web Services Manager) ... il peut y avoir des alternatives open source.

OWSM crée un point de terminaison virtuel qu'il gère et achemine vers les hôtes de service réels. De cette façon, vos hôtes de service peuvent être cachés derrière le pare-feu, avec seulement l'hôte OWSM visible par le monde. Lorsqu'un utilisateur atteint le point de terminaison virtuel, OWSM peut l'authentifier et le transmettre à l'hôte de service équilibré.

0

Une alternative pourrait être d'utiliser des filtres de servlet sur les extrémités réelles. Le filtre pourrait faire plusieurs choses différentes. Il pourrait simplement consigner l'URL demandée dans le HttpServletRequest, ou il pourrait même rediriger vers l'URL correcte pour vous (je ne suis pas sûr de ce que les implications de cela sont pour un service Web, cependant).

Tout ce que vous auriez à faire est de faire correspondre le filtre au même chemin de contexte que le service web (l'axe utilise/services/* par exemple).

Questions connexes