public void downloadBAMTool(String toolName, HttpServletResponse response)
     throws BAMToolboxDepolyerServiceBAMToolboxDeploymentExceptionException {
   try {
     ServletOutputStream out = response.getOutputStream();
     DataHandler downloadData = stub.downloadToolBox(toolName);
     if (downloadData != null) {
       String fileName = "";
       if (!toolName.endsWith(".tbox")) {
         fileName = toolName + ".tbox";
       } else fileName = toolName;
       response.setHeader("Content-Disposition", "fileName=" + fileName);
       response.setContentType(downloadData.getContentType());
       InputStream in = downloadData.getDataSource().getInputStream();
       int nextChar;
       while ((nextChar = in.read()) != -1) {
         out.write((char) nextChar);
       }
       out.flush();
       in.close();
     } else {
       out.write("The requested service archive was not found on the server".getBytes());
     }
   } catch (RemoteException e) {
     log.error(e.getMessage(), e);
     throw new BAMToolboxDepolyerServiceBAMToolboxDeploymentExceptionException(e);
   } catch (IOException e) {
     log.error(e.getMessage(), e);
     throw new BAMToolboxDepolyerServiceBAMToolboxDeploymentExceptionException(e);
   }
 }