1 | import javax.servlet.*; |
---|
2 | import javax.servlet.http.*; |
---|
3 | import java.io.*; |
---|
4 | import java.util.*; |
---|
5 | |
---|
6 | import java.rmi.*; |
---|
7 | import fr.alcatel.ether.tools.*; |
---|
8 | import fr.alcatel.ether.app.common.*; |
---|
9 | import fr.alcatel.ether.app.exception.EtherException; |
---|
10 | import fr.alcatel.ether.bean.ServiceInfoBean; |
---|
11 | |
---|
12 | public class InteractifServiceServlet extends HttpServlet |
---|
13 | { |
---|
14 | |
---|
15 | /** Flag pour debug */ |
---|
16 | private static boolean DEBUG = true; |
---|
17 | |
---|
18 | |
---|
19 | public static String SERVLET_CALL = "/servlet/InteractifServiceServlet"; |
---|
20 | |
---|
21 | |
---|
22 | public void init() |
---|
23 | { |
---|
24 | Config.getConfig(); |
---|
25 | Trace.getTrace("ether"); |
---|
26 | } |
---|
27 | |
---|
28 | /** |
---|
29 | * Méthode service |
---|
30 | * |
---|
31 | * @param request |
---|
32 | * @param response |
---|
33 | */ |
---|
34 | public void service( HttpServletRequest request, HttpServletResponse response ) throws IOException, ServletException |
---|
35 | { |
---|
36 | try { |
---|
37 | Config.getConfig(); |
---|
38 | |
---|
39 | PrintWriter out = response.getWriter(); |
---|
40 | response.setContentType("text/html"); |
---|
41 | |
---|
42 | out.println("<html><head></head><body>"); |
---|
43 | out.println(" LISTE DES PARAMETRES :\n"); |
---|
44 | Enumeration en = request.getParameterNames(); |
---|
45 | String s; |
---|
46 | while ( en.hasMoreElements()) |
---|
47 | { |
---|
48 | s = (String)en.nextElement(); |
---|
49 | out.println(s + " = " + request.getParameter(s) + "\n"); |
---|
50 | } |
---|
51 | |
---|
52 | out.println(" LISTE DES ATTRIBUTS :\n"); |
---|
53 | en = request.getAttributeNames(); |
---|
54 | while ( en.hasMoreElements()) |
---|
55 | { |
---|
56 | out.println((String)en.nextElement()); |
---|
57 | } |
---|
58 | |
---|
59 | // Récupérer l'action à effectuer |
---|
60 | String actionString = request.getParameter( Constants.ACTION ); |
---|
61 | int action = -1; |
---|
62 | |
---|
63 | if( actionString != null ) |
---|
64 | { |
---|
65 | action = Integer.parseInt( actionString ); |
---|
66 | } |
---|
67 | |
---|
68 | HttpSession session = request.getSession(); |
---|
69 | |
---|
70 | switch( action ) |
---|
71 | { |
---|
72 | case 1 : |
---|
73 | { |
---|
74 | // affichage d'un bouton conduisant à l'action deux |
---|
75 | out.println("<form method=\"post\" action=\"" + SERVLET_CALL + "?action=2\">"); |
---|
76 | out.println("<input type=\"submit\" name=\"Submit\" value=\"Result Copie\"></form>"); |
---|
77 | } |
---|
78 | break; |
---|
79 | case 2 : |
---|
80 | { |
---|
81 | try { |
---|
82 | |
---|
83 | ServiceInfoBean bean = (ServiceInfoBean) session.getValue("interactifInfo"); |
---|
84 | FileManager fileMgr = (FileManager)FileManager.instance( FileManager.class.toString() ); |
---|
85 | |
---|
86 | // création du répertoire de sortie dans l'espace utilisateur |
---|
87 | if ( !fileMgr.mkdir( new RemoteFileImpl(bean.getUserHost(),bean.getOutUserDir()) ) ) { |
---|
88 | out.println("Error creating directories"); |
---|
89 | break; |
---|
90 | } |
---|
91 | |
---|
92 | // copie des fichiers résultats |
---|
93 | RemoteFile sourceDir = new RemoteFileImpl(bean.getServiceHost(),bean.getOutServiceDir()); |
---|
94 | RemoteFileManager manager = sourceDir.getFileManager(); |
---|
95 | ArrayList files = manager.list( sourceDir ); |
---|
96 | for ( Iterator file = files.iterator(); file.hasNext(); ) { |
---|
97 | RemoteFile f = (RemoteFile)file.next( ); |
---|
98 | if ( DEBUG ) { Trace.debug( this, "absolute path = " + f.getAbsolutePath() ); } |
---|
99 | if ( DEBUG ) { Trace.debug( this, "path = " + f.getPath() ); } |
---|
100 | RemoteFileImpl destFile = new RemoteFileImpl( bean.getUserHost(), f.getPath() ); |
---|
101 | destFile.setBaseDir( bean.getOutUserDir() ); |
---|
102 | f.getFileManager().move(f,destFile); |
---|
103 | } |
---|
104 | // suppression du répertoire d'exécution du service |
---|
105 | RemoteFile dirToDelete = new RemoteFileImpl(bean.getServiceHost(),bean.getServiceDir()); |
---|
106 | manager = dirToDelete.getFileManager(); |
---|
107 | manager.deleteDir(dirToDelete); |
---|
108 | } |
---|
109 | catch ( NotBoundException e ) |
---|
110 | { |
---|
111 | out.println("Error connecting rmi serveur" + e.toString()); |
---|
112 | } |
---|
113 | |
---|
114 | } |
---|
115 | break; |
---|
116 | default: |
---|
117 | break; |
---|
118 | } |
---|
119 | |
---|
120 | out.println("</body></html>"); |
---|
121 | |
---|
122 | } |
---|
123 | catch( Exception e ) |
---|
124 | { |
---|
125 | System.out.println(e.toString()); |
---|
126 | } |
---|
127 | } |
---|
128 | } |
---|