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

Servlets/JSP Java Discussion :

JSP et Runtime.getRuntime.exec()


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut [Résolu] JSP et Runtime.getRuntime.exec()
    Salut tout le monde,

    Ca fait 3 jours que je suis à la recherche d'une solution de mon problème, ma tête commence à exploser......

    Voilà j'ai développer un petit programme SVG dans le cadre de mon stage de fin d'études.
    Le SVG marche nickel.
    Je veux l'inclure sur une page JSP, avec <iframe> ça marche nickel .
    Ensuite, avant que mon iframe se charge, je voudrais exécuter une petit script shell pour extraire une base de données SQL, et là ça a du mal. J'ai chercher partout, je vois pleins de trucs mais je ne sais pas comment le mettre en œuvre vu que je suis newbie en JSP.

    Voici mon code JSP, c'est ça qui bug (le try&catch)
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <%
    try{

    Process p = Runtime.getRuntime().exec("./extraction.sh");
    //InputStream input = p.getInputStream();

    p.waitFor();

    p.getOutputStream().close();
    p.getInputStream().close();

    }
    catch(IOException e){
    out.println("process was interrupted");
    out.println(e.getMessage());
    }
    %>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Script-Type" content="text/ecmascript" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    </head>
    <body>
    <iframe id="svg" src="Interface.svg" width="100%" height="520" scrolling="auto" frameborder="0" >
    </iframe>
    </body>
    </html>
    Je vous mets aussi le script au cas où .
    Ce script fonctionne lorsque que je l'exécute depuis une console.

    #!/bin/bash
    mysqldump -h localhost -u **** -p**** -X fgs basetest > annot2.xml
    Voilà voilà, je vous remercie d'avance pour les réponse que vous me donnerez.
    Franchement le code .............

    Kleent

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Citation Envoyé par Lorantus Voir le message
    Différents points, après on pourra faire une JSP correcte.
    1) tu n'as pas besoin d'utiliser un IFRAME. Cette astuce n'est pas très bonne. C'est considéré comme un "couteau suisse" aujourd'hui : droits d'accés, etc par forcement autorisé suivant le client.
    2) Pour gérer le XML, JSP sait faire cela facilement.
    3) Lire des données dans une base MySQL, c'est aussi simple.

    Le script .sh que tu utilises rend un format XML (SVG) directement à partir de la base mySQL ? si c'est le cas, la solution est encore plus simple.

    Donne moi un peut plus de détail... et regarde voir ici (bon anglais, je sais ).
    Hello,

    Tout d'abord merci pour ta réponse.
    En fait, si je veux extraire la base en un fichier XML, c'est que j'ai développé le code svg pour qu'il puisse lire la base de données en XML. C'est pour cela donc que j'ai besoin d'extraire les données en XML.

    1) Si je n'utilise pas iframe, qu'est-ce que je dois faire à la place ? Embed ou un truc comme ça ?

    2)C'est probable, mais alors ça veux dire que tu aurais l'intention de mettre tout le code SVG sur la page JSP ? Si oui, comment fait-on cela, je suis curieux

    3) Lire des données dans une base SQL ok, mais faut que je fasse une refonte totale de mon code SVG là, surtout qu'il est pas statique c'est quasiment que de l'ECMAscript dedans, je touche à des choses que je n'ai jamais fait. J'aimerais rester sur les intentions que j'avais au départ. Juste que la ligne de code du /bin/bash fonctionne et après c'est terminé ....
    Si possible je n'aurais pas aimé tout refaire alors que je suis si près du but.

    4) Oui la ligne de code shell permet d'extraire une base de données SQL directement en XML.

    Voilà voilà.
    Je galère juste pour ça, c'est fatiguant .......

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Pour revenir sur la JSP que tu as, il y a des trucs pas bon :
    - tu executes un script pour placer dans un fichier le svg (si j'ai compris)
    - tu ouvres un page html
    - les content-type et encoding se croisent et se mélanges
    - tu envois l'iframe
    C'est tout. Trop complexe... fait plus simple... Tu ouvres une page, qui contient l'affichage du SVG, le SVG qui est fourni par une servlet "passerelle".
    Y'a un autre souci, c'est que le SVG je l'ai codé pour qu'il puisse lire la base de données exportée en XML, ligne par ligne. Alors que si je fais une connexion comme tu me l'as dis, tout va changer, mes variables tableaux, tout tout, c'est du grand méli-mélo.
    Je commence à ne plus voir clair....

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Par défaut
    Bon, ben j'ai trouvé finalement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Runtime r=Runtime.getRuntime();
    Process p =null;
    String cmd="sh /..../..../extraction.sh";
    try{
    p=r.exec(cmd);
    InputStreamReader isr=new InputStreamReader(p.getInputStream());
    BufferedReader br=new BufferedReader(isr);
    String line=null;
    while((line=br.readLine())!=null){
    System.out.println(line);
    }
    p.waitFor();
    }
    catch(Exception e){
    	System.out.println("PROBLEME !!!");
    	System.out.println(e);
    	System.out.println("PROBLEME !!!");
    	}
    System.out.println(p.exitValue());
    Et tout ça avec le iframe après ! Ca marche nicely !
    Marre, je dois toujours tout faire moi même
    c'est désespérant

    Bonne continuation

Discussions similaires

  1. [Système][Runtime]getRuntime().exec
    Par Neptune8 dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 22/02/2011, 19h34
  2. Runtime.getRuntime().exec sous linux
    Par syl2095 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 30/01/2007, 12h56
  3. Runtime.getRuntime().exec(String) méthode sort
    Par devAd dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2006, 13h53
  4. [Runtime.getRuntime().exec] ouvrir un fichier ??
    Par miloud dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 29/03/2006, 14h23
  5. [Swing] execution avec Runtime.getRuntime().exec
    Par benssj5 dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 25/08/2004, 14h54

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