Déclencher des actions (.do) dans une Action... [Java/Struts] - Java - Programmation
Marsh Posté le 01-04-2005 à 09:51:46
bon ca l'air assez complexe et je suis pas assez cale pour t'aider je pense mais peut etre une piste en utilisant les chaines de responsabilite du style :
Code :
|
pris d'un exemple de the server side
http://www.theserverside.com/artic [...] ionMapping
tu forwarde vers une autre action et pas vers une jsp, enfin si j'ai bien compris
Marsh Posté le 01-04-2005 à 10:55:47
Le problème, c'est que j'ai n actions et non une seule à exécuter. Et sur d'autres serveurs en plus, qui ne sont connus que du code Java, pas du struts-config.xml (parce que leur liste a été préalablement extraite dynamiquement). C'est pour cela que je ne vois pas comment faire avec un simple forward.
Bon, OK, à vue de nez, le fait d'envoyer une requête sur un autre serveur plutôt que sur le même serveur doit pouvoir se régler avec un forward et une JSP (il suffit que l'IP et le port de l'autre serveur soient passés en paramètre d'URL et la JSP doit pouvoir s'occuper du reste en faisant un <jsp:forward> ).
Reste la problématique de déclencher n actions dans une Action...
Marsh Posté le 03-04-2005 à 14:13:53
Utilise Commons HttpClient pour invoquer tes n actions "/admin/serverState.do" depuis ton serveur d'admin (action "/admin/report.do" ).
edit: Ce que tu veux faire n'est pas possible (imho) avec le fichier struts-config.xml
Marsh Posté le 31-03-2005 à 23:36:20
Bonjour à tous,
Voici mon problème : j'ai une ferme de serveurs X1 à Xn basés sur Struts. Ces serveurs X1 à Xn ont, parmi toutes les servlets qu'ils acceptent, un "/admin/serverState.do" qui renvoie une description (plus ou moins) binaire de leur état (pour cela, pas de souci, j'ai écrit dans le ServletOutputStream renvoyé par la response.getOutputStream() de l'action associée).
J'ai par ailleurs un serveur d'administration Y, également basé sur Struts, à qui on va demander de faire un rapport sur l'état d'activité (plus ou moins détaillé) des serveurs X1 à Xn (disons, lorsqu'un navigateur demande "/admin/report.do" ). Y connaît bien sûr l'addresse de chacun des serveurs X1 à Xn.
Ce que je veux faire, c'est, dans l'action associée à "/admin/report.do", pouvoir déclencher n actions "/admin/serverState.do" sur les différents serveurs de ma ferme, et en décrypter leur réponse pour pouvoir en fabriquer une synthèse (synthèse qui sera ensuite affichée très classiquement par une JSP). Bref, d'une certaine manière, je voudrais que mon serveur Y se comporte comme un client des serveurs X1 à Xn.
Et vous l'aurez compris, je ne veux pas que la JSP associée au rapport de Y invoque directement la ou les JSP associée(s) au(x) "serverState.do" par un <jsp:forward> ou un <jsp:include> (d'ailleurs, il n'y a pas de telle JSP sur les serveurs X1 à Xn, puisque "/admin/serverState.do" renvoie directement un flux de caractères dans l'action associée, sans faire de forward).
Comment faire ?