<%@ page import = "java.io.*" %> <% // Change path to AlignACE here String pathToAlignACE = "/opt/app/AlignAce/"; String alignACE = "AlignACE"; if (System.getProperty("os.name").startsWith("Windows")){ pathToAlignACE = pathToAlignACE.replace('/', '\\'); alignACE += ".exe"; } // Change to true if you want to enable user validation boolean validateUsers = false; String userName = request.getParameter("userName"); String passwd = request.getParameter("passwd"); String data = request.getParameter("data"); String numcols = request.getParameter("numcols"); String expect = request.getParameter("expect"); String minpass = request.getParameter("minpass"); String seed = request.getParameter("seed"); String gcback = request.getParameter("gcback"); String undersample = request.getParameter("undersample"); String oversample = request.getParameter("oversample"); // See if we have data if (data == null || numcols == null || expect == null || minpass == null || seed == null || gcback == null || undersample == null || oversample == null) { out.println("Error: missing data or parameter(s). Close this window and try again."); return; } if (validateUsers) { // Implement your user validation scheme here String siteUserName = "yourSiteUserName"; String sitePasswd = "yourSitePassword"; if (userName == null || passwd == null) { out.println("Error: missing user name and/or password."); return; } if (!userName.equals(siteUserName) || !passwd.equals(sitePasswd)) { out.println("Error: user validation failed. Close this window and try again." + "\nEnter your username and password into the corresponding fields of the dialog." + "\nIf you forgot your username or password, ask your web site administrator."); return; } } String fileName = pathToAlignACE + "tmp" + session.getId() + ".seq"; String cmd = pathToAlignACE + alignACE + " -i " + fileName + " -numcols " + numcols + " -expect " + expect + " -minpass " + minpass + " -seed " + seed + " -gcback " + gcback + " -undersample " + undersample + " -oversample " + oversample; int exitValue = 0; try { // Open a temporary file File file = new File(fileName); // Create an output writer that will write to that file. FileWriter fw = new FileWriter(file); fw.write(data); fw.close(); Process p = Runtime.getRuntime().exec(cmd); BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream())); String currentLine = null; while ( (currentLine = in.readLine()) != null) { out.println(currentLine); } BufferedReader err = new BufferedReader(new InputStreamReader(p.getErrorStream())); while ( (currentLine = err.readLine()) != null) { out.println(currentLine); } in.close(); err.close(); exitValue = p.waitFor(); if (exitValue != 0) { out.println("Error: exit value is " + exitValue); } file.delete(); } catch (WriteAbortedException wae) { wae.printStackTrace(response.getWriter()); } catch (IOException ioe) { ioe.printStackTrace(response.getWriter()); } catch (Exception e) { e.printStackTrace(response.getWriter()); } %>