Probléme d'affichage

nehed - Modifié par nehed le 22/04/2014 à 15:49
 nehed - 23 avril 2014 à 15:19
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

cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
22 avril 2014 à 16:05
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
0
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();
}
0
cs_Julien39
Messages postés
6414
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
29 juillet 2020
366
23 avril 2014 à 08:27
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.
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
23 avril 2014 à 12:52
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)


0
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
0
Twinuts
Messages postés
5373
Date d'inscription
dimanche 4 mai 2003
Statut
Modérateur
Dernière intervention
10 août 2022
111
23 avril 2014 à 14:12
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é.

0
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
0