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 servlet:
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
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; } }
appel de la méthode:
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 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"); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Object connector = getConnector("dot.exe"); GrappaSupport.filterGraph(tmp, connector);
Partager