Appel d'un executable depuis une applet
Bonjour tout le monde,
Comme je l'ai dit dans le titre, je cherche à appeler un executable depuis mon applet.
Je souhaite donc récupérer un Object appelé connector avec la commande Runtime.getRuntime.exec("chemin_exe").
Pour ce faire, j'ai établit une connexion entre mon applet et une servlet qui créer l'objet et le renvoi grâce à un ObjectOutputStream.
Ceci étant je n'arrive pas à le refiler à l'applet car mon objet connector n'est pas serializable.
L'executable se trouve du coté serveur.
C'est un peu farfelu donc je ne sais pas si je m'y prend de la bonne manière...
Si quelqu'un a une idée...
Merci d'avance
code applet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
public Object getConnector(String op){
Object connector = null;
try{
URL servlet = new URL(applet.getCodeBase() + "GraphMedServlet");
URLConnection conn = servlet.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setDefaultUseCaches(false);
conn.setRequestProperty("Content-Type","application/x-java-serialized-object");
OutputStream out = conn.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
oos.writeObject(op);
oos.flush();
oos.close();
InputStream instr = conn.getInputStream();
ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(instr));
connector = ois.readObject();
}
catch(Exception e){
e.printStackTrace();
}
finally{
return connector;
}
} |
code servlet:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
try{
response.setContentType("application/x-java-serialized-object");
InputStream in = request.getInputStream();
ObjectInputStream ois = new ObjectInputStream(in);
Object result = ois.readObject();
ois.close();
in.close();
OutputStream out = response.getOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(out);
Object connector = Runtime.getRuntime().exec(result);
oos.writeObject(connector);
oos.flush();
oos.close();
}
catch(Exception ex){
JOptionPane.showMessageDialog(null, ex.toString() + " in Servlet");
} |
appel de la méthode:
Code:
1 2 3
|
Object connector = getConnector("dot.exe");
GrappaSupport.filterGraph(tmp, connector); |