Relayer une requête vers une auttre appli web

Le
Yliur
Bonjour

Dans une appli web (déployée dans Tomcat), j'aimerais
relayer des requêtes qui arrivent à une servlet
vers une autre appli déployée dans le même serveur.

En gros request.getRequestDispatcher("adresse-dans-l'autre-appli").includes()
(ou forward ?) pourrait faire ce que je veux, sauf
que ça ne semble fonctionner que pour transférer
la gestion de la requête à une autre servlet de la
même appli.

Sinon j'essaeie avec URL/URLConnection d'émettre
"à la main" la requête vers la deuxième appli,
mais ça ne semble pas permettre le passage dans la
nouvelle requête de toutes les informations arrivées
dans la requête reçue.

Et si possible en évitant de réécrire entièrement un
relai HTTP, je cherche plutôt une solution simple :)

En espérant que ces explications sont assez claires

Merci

Yliur
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
TestMan
Le #20268871
On 31/08/2009 14:43, Yliur wrote:
Bonjour

Dans une appli web (déployée dans Tomcat), j'aimerais
relayer des requêtes qui arrivent à une servlet
vers une autre appli déployée dans le même serveur.

En gros
request.getRequestDispatcher("adresse-dans-l'autre-appli").includes(...)
(ou forward ?) pourrait faire ce que je veux, sauf
que ça ne semble fonctionner que pour transférer
la gestion de la requête à une autre servlet de la
même appli.

Sinon j'essaeie avec URL/URLConnection d'émettre
"à la main" la requête vers la deuxième appli,
mais ça ne semble pas permettre le passage dans la
nouvelle requête de toutes les informations arrivées
dans la requête reçue.

Et si possible en évitant de réécrire entièrement un
relai HTTP, je cherche plutôt une solution simple... :)

En espérant que ces explications sont assez claires...

Merci

Yliur



Bonjour Yliur,

Pouvez-vous nous confirmer que la DefaultServlet est bien activée sur
l'appli cible ?
(en gros vous testez http://truc.com/appli-cible/img/ et ça doit lister
les images par exemple)

Sinon, il y a le rewriting d'URL style :
http://tuckey.org/urlrewrite/

A+
TM
Yliur
Le #20335541
Le Thu, 01 Oct 2009 14:37:21 +0200
TestMan
On 31/08/2009 14:43, Yliur wrote:
> Bonjour
>
> Dans une appli web (déployée dans Tomcat), j'aimerais
> relayer des requêtes qui arrivent à une servlet
> vers une autre appli déployée dans le même serveur.
>
> En gros
> request.getRequestDispatcher("adresse-dans-l'autre-appli").includes(...)
> (ou forward ?) pourrait faire ce que je veux, sauf
> que ça ne semble fonctionner que pour transférer
> la gestion de la requête à une autre servlet de la
> même appli.
>
> Sinon j'essaeie avec URL/URLConnection d'émettre
> "à la main" la requête vers la deuxième appli,
> mais ça ne semble pas permettre le passage dans la
> nouvelle requête de toutes les informations arrivées
> dans la requête reçue.
>
> Et si possible en évitant de réécrire entièrement un
> relai HTTP, je cherche plutôt une solution simple... :)
>
> En espérant que ces explications sont assez claires...
>
> Merci
>
> Yliur

Bonjour Yliur,

Pouvez-vous nous confirmer que la DefaultServlet est bien activée sur
l'appli cible ?
(en gros vous testez http://truc.com/appli-cible/img/ et ça doit
lister les images par exemple)



Ca m'étonnerait.
Pourquoi est-ce important ? Les adresses que je cherche à contacter
sont accessibles, mais dans une autre appli web.

Sinon, il y a le rewriting d'URL style :
http://tuckey.org/urlrewrite/



Oui, mais je veux filtrer les URl dans une servlet.
J'ai fait avec le module HttpClient de la fondation Apache, mais ce
n'est peut-être pas le plus simple...

A+
TM


Yliur
Le #20404371
Le Thu, 22 Oct 2009 09:55:34 +0200
TestMan
On 12/10/2009 03:28, Yliur wrote:
> Le Thu, 01 Oct 2009 14:37:21 +0200
> TestMan >
>> On 31/08/2009 14:43, Yliur wrote:
>>> Bonjour
>>>
>>> Dans une appli web (déployée dans Tomcat), j'aimerais
>>> relayer des requêtes qui arrivent à une servlet
>>> vers une autre appli déployée dans le même serveur.
>>>
>>> En gros
>>> request.getRequestDispatcher("adresse-dans-l'autre-appli").includes(. ..)
>>> (ou forward ?) pourrait faire ce que je veux, sauf
>>> que ça ne semble fonctionner que pour transférer
>>> la gestion de la requête à une autre servlet de la
>>> même appli.
>>>
>>> Sinon j'essaeie avec URL/URLConnection d'émettre
>>> "à la main" la requête vers la deuxième appli,
>>> mais ça ne semble pas permettre le passage dans la
>>> nouvelle requête de toutes les informations arrivées
>>> dans la requête reçue.
>>>
>>> Et si possible en évitant de réécrire entièrement un
>>> relai HTTP, je cherche plutôt une solution simple... :)
>>>
>>> En espérant que ces explications sont assez claires...
>>>
>>> Merci
>>>
>>> Yliur
>>
>> Bonjour Yliur,
>>
>> Pouvez-vous nous confirmer que la DefaultServlet est bien activée
>> sur l'appli cible ?
>> (en gros vous testez http://truc.com/appli-cible/img/ et ça doit
>> lister les images par exemple)
>
> Ca m'étonnerait.
> Pourquoi est-ce important ? Les adresses que je cherche à contacter
> sont accessibles, mais dans une autre appli web.
>
>> Sinon, il y a le rewriting d'URL style :
>> http://tuckey.org/urlrewrite/
>
> Oui, mais je veux filtrer les URl dans une servlet.
> J'ai fait avec le module HttpClient de la fondation Apache, mais ce
> n'est peut-être pas le plus simple...

Ni le plus conseillé ... les serveurs d'appli (moteurs de servlets)
sont toujours sensible à l'utilisation de composants de connexions
vers l'extérieurs qui n'auraient pas été prévus pour fonctionés dans
un containeur (réutilisation de ressource, problème de code
réentrant, vérrous multithread, ... et j'en passe).

Allez voir sur :
http://www.geekinterview.com/question_details/23494

Celà devrait vous quider vers une soluce.

A+
TM


Je vous conseille




Merci pour le lien. Effectivement, une des réponses dans la page
indiquée mentionne la méthode ServletContext.getContext(...), qui
devrait être la clé qui me manquait pour demander des pages d'une
autre appli.

Je vais essayer :) .
Publicité
Poster une réponse
Anonyme