# HG changeset patch # User luisf # Date 1386676966 0 # Node ID 52adafab20c14e7ad43baada061b2162c06131c5 # Parent 3b092b89c92e37264738a74853026617ba844a0d The Servlet now sends the audio file to the browser; diff -r 3b092b89c92e -r 52adafab20c1 WebContent/index.jsp --- a/WebContent/index.jsp Mon Dec 09 16:57:52 2013 +0000 +++ b/WebContent/index.jsp Tue Dec 10 12:02:46 2013 +0000 @@ -2,18 +2,6 @@ Human Echolocation - - <% - // String distStr = request.getParameter("dist"); - // int dist = 1; - // boolean distSet = false; - // if(distStr!=null && distStr.length()>0) - // { - // dist = Integer.parseInt(distStr); - // distSet = true; - // } - %> - @@ -22,35 +10,34 @@ +
+ + + + +
Header Image Not Found
+
-
- - - - -
Header Image Not Found
-
+

Human Echolocation WebApp Example Page

-

Human Echolocation WebApp Example Page

+ Testing...
- Testing... + Input parameters: +
+ Distance: + +
+ +
- Input parameters: -
- Distance: - -
- -
+
+
-
-
+
-
+
-
- -
+
diff -r 3b092b89c92e -r 52adafab20c1 src/HumanEchoServlet.java --- a/src/HumanEchoServlet.java Mon Dec 09 16:57:52 2013 +0000 +++ b/src/HumanEchoServlet.java Tue Dec 10 12:02:46 2013 +0000 @@ -1,5 +1,5 @@ /* - * HumanEchoServlet + * HumanEchoServlet * * Version information * @@ -11,14 +11,14 @@ import java.util.Properties; import java.io.IOException; +import java.io.FileInputStream; +import java.io.BufferedInputStream; +import java.io.File; + import org.apache.log4j.Logger; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.ServletException; -import javax.servlet.ServletConfig; -import javax.servlet.RequestDispatcher; +import javax.servlet.*; +import javax.servlet.http.*; import com.mathworks.toolbox.javabuilder.MWJavaObjectRef; import com.mathworks.toolbox.javabuilder.MWNumericArray; @@ -30,8 +30,10 @@ public class HumanEchoServlet extends HttpServlet { private HumanEcho echo; + private static Logger logger = Logger.getLogger(HumanEchoServlet.class); - private static Logger logger = Logger.getLogger(HumanEchoServlet.class); + private String tempdir = ""; + private String wavdir = ""; public void init(ServletConfig config) throws ServletException { super.init(config); @@ -42,8 +44,8 @@ properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("myapp.properties")); //get the property value and print it out - System.out.println(properties.getProperty("tmpdir")); - System.out.println(properties.getProperty("outdir")); + tempdir = properties.getProperty("tmpdir"); + wavdir = properties.getProperty("outdir"); } catch (IOException e) { e.printStackTrace(); @@ -72,10 +74,14 @@ MWStructArray Input = null; HumanEcho echo; + String outputfname = new String(); + try { echo = new HumanEcho(); logger.error("We are logging!"); + logger.warn(System.getProperty("catalina.base")); + // Matlab structure: // Input = struct('dist', 0.9, 'azim', 0, 'orient', 'horz', 'dirweight', 0.2, 'outputfname', 'foo.wav') @@ -92,7 +98,7 @@ sb.append("e_d"); sb.append(dist); sb.append(".wav"); - String outputfname = sb.toString(); + outputfname = sb.toString(); Input.set("outputfname", 1, outputfname); @@ -103,35 +109,42 @@ e.printStackTrace(); } + // Creating the stream + ServletOutputStream stream = null; + BufferedInputStream buf = null; + + try{ + stream = response.getOutputStream(); + File wavfile = new File(outputfname); + + //set response headers + response.setContentType("audio/wav"); + response.addHeader("Content-Disposition","attachment; filename=" + outputfname ); + response.setContentLength( (int) wavfile.length( ) ); + + FileInputStream input = new FileInputStream(wavfile); + buf = new BufferedInputStream(input); + int readBytes = 0; + + //read from the file; write to the ServletOutputStream + while((readBytes = buf.read( )) != -1) + stream.write(readBytes); + + } catch (IOException ioe){ + throw new ServletException(ioe.getMessage( )); + } finally { + //close the input/output streams + if(stream != null) + stream.close( ); + + if(buf != null) + buf.close( ); + } + System.out.println("MCRROOT: " + System.getenv("MCRROOT")); System.out.println("PATH: " + System.getenv("PATH")); System.out.println(MCRConfiguration.isInstalledMCR()); - - StringBuffer buffer = new StringBuffer(); - - buffer.append("
"); - buffer.append("
"); - - buffer.append("worked, ?"); - - buffer.append("
"); - buffer.append("
"); - -/* - buffer.append(""); - for (double[] row : square) - { - buffer.append(""); - for (double value : row) - { - buffer.append("
"); - buffer.append(new Double(value).intValue()); - } - } - buffer.append("
"); - buffer.append("
"); - response.getOutputStream().print(buffer.toString()); -*/ + logger.warn("tmpdir " + tempdir); } }