summaryrefslogtreecommitdiff
path: root/WEB-INF/classes/SciExec.java~
blob: c4287aa44f279ba94c607a5958fc8ca456556b34 (plain)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import java.io.*;
import javax.servlet.*;
import java.util.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.FilenameUtils;


public class SciExec extends GenericServlet {


	public void service(ServletRequest request,ServletResponse response) throws ServletException, IOException
	{   
        PrintWriter pw = response.getWriter();

        
        

        InputStream is = null;
        ByteArrayOutputStream baos = null;
        List<String> commands = new ArrayList<String>();
        commands.add("scilab-adv-cli");
        commands.add("-noatomsautoload");
        commands.add("-nogui");
        commands.add("-nb");
        commands.add("-e");

        String imagePath="";
        String fileNameWithoutExt="";
        //commands.add("plot3d();xs2png(gcf(),'img2.png');exit();");
        /*String data=request.getParameter("name");
        pw.println(data);
        commands.add("echo "+data+" > /home/saarang/Softwares/apache-tomcat-8.0.36/webapps/sci/servlet/file.xcos");*/
        //commands.add("driver('PNG');xinit('/home/saarang/apache-tomcat-8.0.36/webapps/worknogui/servlet/ans"+k+".png');loadXcosLibs();importXcosDiagram('/home/saarang/apache-tomcat-8.0.36/file.xcos');xcos_simulate(scs_m,4);mode(2);xend();quit();");
        ProcessBuilder pb = new ProcessBuilder(commands);
        try 
        {
            InputStream inputStream = request.getInputStream();

            File xcosFile = File.createTempFile("usr-", ".xcos");
            OutputStream outputStream = new FileOutputStream(xcosFile);
            IOUtils.copy(inputStream, outputStream);
            outputStream.close();

            String tempPath = xcosFile.getAbsolutePath();

            String parentPath = xcosFile.getParent();
            fileNameWithoutExt = FilenameUtils.removeExtension(xcosFile.getName());

            imagePath = "/home/saarang/apache-tomcat-8.0.36/webapps/xcos-on-web/servlet"+File.separator + fileNameWithoutExt + ".png";

            commands.add("driver('PNG');xinit('"+imagePath+"');loadXcosLibs();importXcosDiagram('"+tempPath+"');xcos_simulate(scs_m,4);mode(2);xend();quit();");

            Process prs = pb.start();
            is = prs.getInputStream();
            byte[] b = new byte[1024];
            int size = 0;
            baos = new ByteArrayOutputStream();
            while((size = is.read(b)) != -1){
                baos.write(b, 0, size);
            }
            System.out.println(new String(baos.toByteArray()));


        } 
        catch (IOException e) 
        {
            e.printStackTrace();
        } 
        catch(Exception e)
        {
            /*System.out.println(e.toString()+"Some Exception");*/
            pw.println("Exception");
        }
        finally
        {
            try {
                if(is != null) is.close();
                if(baos != null) baos.close();
            } catch (Exception ex){}
        }
        pw.println("servlet/"+fileNameWithoutExt+".png");
        //pw.println(request.getParameter("name"));
        pw.close();
    }
   
}