Probléme d'affichage

Signaler
-
 nehed -
Bonjour,

Je développe une application jee, struts 2 et je vise afficher le résultat d'une commande traceroute dans une page jsp mais mon problème ce que tout s'affiche dans le console et rien ne s'affiche dans page.
quelqu'un a une idée SVP

7 réponses

Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Salut,

Tu lances un traceroute avec un Runtime.exec() ?

Dans ce cas, il faut récupérer les flux de sortie et les afficher dans ta jsp.

Peux tu me montrer ton code, je te dirai comment faire
Voilà mon code qui marche très bien mais le problème que le résultat de ce code s'affiche dans le console d'eclipse pas dans ma page jsp.

    public String tracePing()
{
EquipementAction obj = new EquipementAction();

String domainName = this.adress_ip;
String command = "traceroute -m20 " + domainName;

String output = obj.executeCommand(command);

System.out.printf(output);
return "traceEquipement";

}

private String executeCommand(String command) {

StringBuffer output = new StringBuffer();

Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));

String line = "";
while ((line = reader.readLine())!= null) {
output.append(line + "\n");
}

} catch (Exception e) {
e.printStackTrace();
}
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
355
Le code java est bon, tu récupères bien dans un String le résultat, mais il serait préférable d'utiliser des StringBuilder et non des StringBuffer (mais le problème n'est pas là).

Une fois que tu as récupéré le résultat de ton traceroute, qu'est ce que tu en fais ? Comment l'affiches tu dans ta page html ?

Quelque part, tu dois avoir un System.out.println qui affiche le résultat dans la console, et ce n'est pas ce que tu veux faire.
D'accord et bon pour l'affichage j'ai ajouté ces deux lignes dans mon fichier struts.xml

<action name="tracePing"
class="com.equipement.action.EquipementAction" method="tracePing">
<result name="traceEquipement">admin/historiquePing.jsp</result>

</action>
Mais une fois je tape
System.out.println(output);
la page HistoriquePing.jsp s'affiche avec 0 résultat tout s'affiche dans le console d'eclipse et mon but c'est que le résultat du traceroute s'affiche au niveau de ma page historiquePing.jsp
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
110
Salut,

ca ne va pas résoudre ton problème mais pense à mettre le chemin complet de ton application traceroute.
En fonction du contexte de démarrage java peut ne pas trouver le binaire avec un chemin relatif.

Sinon provisoirement essai de remplacer le p.getInputStream() par p.getErrorStream(), comme ça tu auras accès au flux d'erreur (on ne sait jamais)


Merci,je vais essayer avec p.getErrorStream() mais bon qu'on j'ai essayer d'afficher le résultat en étant un erreur avec
addActionError(output)
au lieu de System.out.println(output);
j'aurais un affichage du résultat dans ma page jsp mais le résultat est mal affiché tout dans une même ligne
Messages postés
5363
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
30 avril 2021
110
Salut,

"j'aurais un affichage du résultat dans ma page jsp mais le résultat est mal affiché tout dans une même ligne"

Ha mais tu as quand même le résultat et du coup c'est plus un pb de mise en page ?
j'ai cru comprendre que tu n'avais justement pas le résultat escompté.

si si j'arrive à avoir une résultat mais seulement qu'on j'utilise addActionError ,il considère le résultat comme étant un erreur du coup il l'affiche dans une seul ligne