IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 1 Java Discussion :

[Struts] Ecouter des requêtes HTTP


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut [Struts] Ecouter des requêtes HTTP
    Bonjour,

    J'ai besoin dans mon application basé sur Struts, d'une servlet qui attend une plusieurs requête HTTP à la suite. Le problème est que cette servlet doit juste écouter la requête mais ne rien retourner au client...

    Pour simplifier :
    Une première servlet se dirige vers une action sur un serveur distant :

    Servlet A serveur 1 ---> Servlet B serveur 2

    Là la servlet B du serveur 2 va renvoyer successivement 3 requêtes HTTP vers une servlet C du serveur 1:

    Servlet B serveur 2 ---> Servlet C serveur 1
    Servlet B serveur 2 ---> Servlet C serveur 1
    Servlet B serveur 2 ---> Servlet C serveur 1

    Mais cette servlet C ne devra rien retourner avant le 3eme appel....

    Est-ce que l'un d'entre vous à déjà du faire ce genre de chose ??


    Merci et bonne journée

    [ Sujet déplacé depuis le forum java par Viena ]
    Les Règles du Forum

  2. #2
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour,

    pour le peu que j'ai compris, tu va à l'encontre du concept du protocole HTTP.

    Soit que chaque interrogation est suivie par une réponse.

  3. #3
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Eh bien malheureusement.. je ne suis pas responsable du serveur 2 qui envoi les 3 requêtes HTTP

    Ce serveur me retourne 3 états successifs d'une transaction qu'il fait en interne et seul le 3eme état (Transaction terminée) m'interresse...

    J'ai déjà vu des exemple en CGI mais jamais sur base Struts pure, je pense qu'avec une servlet normale sur laquelle on à plus la main mise sur le comportement du controleur de servlet on doit y arriver mais en struts pur je me posais la question...

    voilà voilà voilà

  4. #4
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Désolé, je baisse les bras.

    J'attends les réponses d'autres intervenants avec impatience.

  5. #5
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Effectivement ca va à l'encontre du protocole HTTP.
    Ce qui m'etonne c'est comment le serveur 2 est programmé.
    Parce que les implementations standard attendent une réponse (quitte à l'ignorer superbement par la suite).
    Donc pourquoi ne pas renvoyer null les deux première fois ou un truc bidon ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    J'ai pas du tout comprendre mais si la servlet B du serveur 1 recois une requete de la servlet C du serveur 2 alors sa reponse ira vers la servlet C du serveur 2, du coup c'est la servlet C qui repond a la servlet A qui enfin repond a l'utilisateur non ?

  7. #7
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Citation Envoyé par ze_key
    Donc pourquoi ne pas renvoyer null les deux première fois ou un truc bidon ?
    C'est ce que j'ai essayé de faire... Malheureusement cela m'affiche une page blanche !

    Un "return null;" en tant que retour de l'action struts retourne une page blanche... en fait mon problème c'est que le controleur struts prend le controle de la response et n'écoute plus du tout ce qui se passe ensuite...

    Par contre je'ai peur que les types qui ont développé l'application sur le serveur 2 fassent leurs validation des étapes en javascript et son donc tributaire de l'affichage de leur page pour envoyer les 3 requêtes !

    Du coup je reçois la première mais pas les 2 autres....

  8. #8
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Bon je crois que quelque chose nous echappe. Mais c'est interressant.Peux tu reprendre depuis le début avec une explication détaillée des technos et de l'enchainement des modules et des pages stp.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Bon apres avoir relu le post je pense (je dis bien je pense) avoir un peu mieux compris .

    Et du coup je comprend pas comment sur le serveur 2 fait pour repondre 3 fois a une Requete ?? je suis curieux de savoir !!

    Je fais que repeter ce qui a ete dis mais HTTP c'est 1 requete =>1Reponse !!

  10. #10
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Bien je vais essayer d'être plus clair... Ca ne sera pas dur

    D'un côté mon application sur un SERVEUR1 (Struts Apache, Tomcat).
    Cette application va, sur une action PAYER, rediriger en sendRedirect le client vers l'application du SERVEUR2 qui se charge de valider la transaction.

    Cette redirection et les pages de la transaction restent dans la même fenêtre côté client.
    Durant cette transaction le SERVEUR2 va me retourner successivement 3 etats par le biais d'une requête HTTP:
    Etat 1 : Autorisation de paiement accepté
    Etat 2 : Paiement accepté
    Etat 3 : Transaction terminée.

    Je ne sais pas de quelle façon les 3 requêtes sont envoyé mais je soupçonne du javascript : ce qui oblige la page du SERVEUR2 à rester affichée !!
    La contrainte est que le SERVEUR2 me retourne ces état sur 1 URL de mon SERVEUR1.

    Lorsque le SERVEUR2 me retourne le premier état mon action Struts d'écoute va regarder le code :
    -> Si c'est 1 j'attends je ne fais rien
    Et c'est là qu'est mon problème je ne sais pas comment dire à une action struts de ne rien faire a part tester un code retour, si je fais un "return null;" à la fin il change la page du navigateur par une page blanche ET DU COUP les javascripts qui sont censés me retourner les états suivants ne le font pas et je suis bien embété

    Alors effectivement je pourrais ouvrir la transaction dans une nouvelle fenêtre mais j'aurais bien aimé évité d'en arriver à l'ouverture de popup

    Voilà est-ce plus clair ?

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Bon alors en fait on a :

    A => B
    B => Client
    Client => A (et c'est la que ca merde) puisque A => CLient (page blanche)
    B=>Client (etat 2)
    Client => A
    B => Client (etat 3)
    Client => A
    A => Client (transaction terminé)

    c'est ca ?

    Si c'est ca j'avoue que je vois pas comment resoudre le probleme dans l'immediat !!

    c'est particulier parce que pendant que le client discute avec B il envoie des requete a A du coup ca coupe la conversation avec B.

    Tu es sur qu'il n'est pas possible de parametrer le retour de la servlet B pour que le client ne communique avec A qu'apres le troisieme etat ??

  12. #12
    Membre Expert
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Par défaut
    Désolé d'insister mais ce qui m'embête c'est la parti client.
    Parce que si le client t'envoi Etat 1 par du javascript; genre AJAX puis il oublie de lire la réponse c'est techniquement possible mais Et en plus apparement ce n'est pas le cas parce que sinon il ne retournerai pas une page blanche.

    Ensuite tu peux dans le pire des cas surcharger le struts RequestProcessor.
    As lui tu peux continuer le processing ou s'arrêter mais c'est également très crade.

    En fait je pense que le mieux c'est que ton action retourne un redirect vers la pages cliente qui à fait l'appel initiale pour qu'elle se reaffiche et qu'elle puis lancer l'Etat 2. Le tout étant de trouver les paramètre qui la mettrons dans un etat correct.

    Je ne suis peut-être pas très clair mais bon...je vais ce que je peux

    Ensuite et en dernier; je veux pas critiquer ma là quand même l'architecte a due se taper la tête contre les murs pour arriver à ca.

  13. #13
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Citation Envoyé par FreshVic
    Tu es sur qu'il n'est pas possible de parametrer le retour de la servlet B pour que le client ne communique avec A qu'apres le troisieme etat ??
    Malheureusement non...

    Disons que c'est réalisable en faisant :

    SERVEUR1 FENETRE1 -> Ouverture popup SERVEUR2 FENETRE2

    Puis lorsque le SERVEUR2 me retourne les état je change le contenu de la FENETRE1 et quand il me retourne le dernier etat j'affiche une page (toujours sur FENETRE1) qui ferme FENETRE2 et qui affiche le véritable résultat de la transaction... J'ai peur de ne pas avoir le choix... ou alors une internal frame...

  14. #14
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Citation Envoyé par ze_key
    ...c'est que ton action retourne un redirect vers la pages cliente qui à fait l'appel initiale pour qu'elle se reaffiche et qu'elle puis lancer l'Etat 2.
    Je n'ai pas la possibilité de demander l'état en cours au serveur 2 je dois attendre ses réponses...

    Citation Envoyé par ze_key
    ...là quand même l'architecte a due se taper la tête contre les murs pour arriver à ca.
    Je suis entièrement d'accord et en plus ils n'ont pas d'autre moyen d'envoi des état autres que javascript ce qui m'énerve je voulais que toute l'application fonctionne SANS javascript (oui je suis vielle école )..
    Je leur ai dit et il m'ont répondu qu'ils étaient en train de se pencher dessus...

    Je pense que je vais opter pour une solution avec popup... si ça marche on ne sait jamais... comme ça leur javascript fonctionnera...

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Citation Envoyé par ledruide

    Je pense que je vais opter pour une solution avec popup... si ça marche on ne sait jamais... comme ça leur javascript fonctionnera...
    Je vois pas comment cela pourrais resoudre le probleme puisque si j'ai bien compris c'est la popup qui deviendras blanche non ?

    mais peut etre que je dis une betise , c'est plutot tordu cette histoire !!

  16. #16
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Bien...

    Merci à tous pour toutes ces réponses et pour votre temps...

    Je viens d'appeler le service technique pour savoir comment ils envoyaient leurs 3 état successivement...

    Ils passent bien par du javascript mais en fait, ils ne renvoient 3 état QUE si on utilise pour l'appel un CGI qui leur appartient à mettre sur notre serveur !
    Danst TOUS les autres cas ils ne retournent que 1 seul état ce qui ne pose donc pas de problème...

    Désolé et merci encore
    Pour la peine je vais aller voir si je ne peux pas aider d'autres personnes sur ce forum

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Par défaut
    Citation Envoyé par ledruide

    Ils passent bien par du javascript mais en fait, ils ne renvoient 3 état QUE si on utilise pour l'appel un CGI qui leur appartient à mettre sur notre serveur !
    Danst TOUS les autres cas ils ne retournent que 1 seul état ce qui ne pose donc pas de problème...
    Ha bha ca me rassure je voyais pas comment resoudre ce probleme , du coup je trouvais la solution de l'ecureuil tres tres mal concu , a croire que tu etait le premier a t'en servir et probablement le dernier.

    Désolé et merci encore
    Pour la peine je vais aller voir si je ne peux pas aider d'autres personnes sur ce forum
    Bonne initiative bravo

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer et recevoir des requêtes http
    Par zorglubpok dans le forum Langage
    Réponses: 6
    Dernier message: 24/09/2009, 22h02
  2. Librairie de traitement des requêtes HTTP
    Par youp_db dans le forum Windows
    Réponses: 4
    Dernier message: 18/10/2008, 16h16
  3. Réponses: 2
    Dernier message: 22/08/2008, 17h03
  4. ResourceBundle.getBundle émet des requêtes http > 404
    Par arn0caba2le dans le forum Applets
    Réponses: 1
    Dernier message: 31/01/2008, 10h34
  5. Historique des Requêtes http
    Par medchok dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 03/09/2006, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo