ISSUE
Using a servlet to render a HTML wrapper to call a flex application for automation.
SOLUTION
Please find the sample servlet code which is based on the default HTML wrapper generated by Flash Builder.
as long as you have mentioned the right SWF name and compiled the SWF to be automation enabled.
you should be able to record and playback automation scripts.
[ NOTE : Also ensure that you have the related files in place
[ history folder, AC_OETags.js, playerProductInstall.swf, automation enabled application SWF file]
you may find them in any project created from Flash builder (can be found in “Bin-Debug” folder or any release build exported from Flash builder) ]
after adding the files your directory structure would look like this.

SERVLET CODE :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author chandran
*/
@WebServlet(name = “QtpServlet”, urlPatterns = {“/QtpServlet”})
public class QtpServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8″);
PrintWriter out = response.getWriter();
try {
/*
out.println(“<html>”);
out.println(“<head>”);
out.println(“<title>Servlet QtpServlet</title>”);
out.println(“</head>”);
out.println(“<body>”);
out.println(“<h1>Servlet QtpServlet at ” + request.getContextPath () + “</h1>”);
out.println(“</body>”);
out.println(“</html>”);
*/
out.println(“<html lang=\”en\”>”);
out.println(“<head>”);
out.println(“<meta http-equiv=\”Content-Type\” content=\”text/html; charset=utf-8\” />”);
/* BEGIN Browser History required section */
out.println(“<link rel=\”stylesheet\” type=\”text/css\” href=\”history/history.css\” />”);
/* END Browser History required section */
out.println(“<title></title>”);
out.println(“<script src=\”AC_OETags.js\” language=\”javascript\”></script>”);
/* BEGIN Browser History required section */
out.println(“<script src=\”history/history.js\” language=\”javascript\”></script>”);
/* END Browser History required section */
out.println(“<style>”);
out.println(“body { margin: 0px; overflow:hidden }”);
out.println(“</style>”);
out.println(“<script language=\”JavaScript\” type=\”text/javascript\”>”);
/*
// —————————————————————————–
// Globals
// Major version of Flash required*/
out.println(“var requiredMajorVersion = 9;”);
// Minor version of Flash required
out.println(“var requiredMinorVersion = 0;”);
// Minor version of Flash required
out.println(“var requiredRevision = 124;”);
// —————————————————————————–
// */
out.println(“</script>”);
out.println(“</head>”);
out.println(“<body scroll=\”no\”>”);
out.println(“<script language=\”JavaScript\” type=\”text/javascript\”>”);
/*
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)*/
out.println(“var hasProductInstall = DetectFlashVer(6, 0, 65);”);
// Version check based upon the values defined in globals
out.println(“var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);”);
out.println(“if ( hasProductInstall && !hasRequestedVersion ) {“);
// DO NOT MODIFY THE FOLLOWING FOUR LINES
// Location visited after installation is complete if installation is required
out.println(“var MMPlayerType = (isIE == true) ? \”ActiveX\” : \”PlugIn\”;”);
out.println(“var MMredirectURL = window.location;”);
out.println(“document.title = document.title.slice(0, 47) + \” – Flash Player Installation\”;”);
out.println(“var MMdoctitle = document.title;”);
out.println(“AC_FL_RunContent(“);
out.println(“\”src\”, \”playerProductInstall\”,”);
out.println(“\”FlashVars\”, \”MMredirectURL=\”+MMredirectURL+\’&MMplayerType=\’+MMPlayerType+\’&MMdoctitle=\’+MMdoctitle+\”\”,”);
out.println(“\”width\”, \”100%\”,”);
out.println(“\”height\”, \”100%\”,”);
out.println(“\”align\”, \”middle\”,”);
out.println(“\”id\”, \”AccordianHeader182345208\”,”);
out.println(“\”quality\”, \”high\”,”);
out.println(“\”bgcolor\”, \”#ffffff\”,”);
out.println(“\”name\”, \”AccordianHeader182345208\”,”);
out.println(“\”allowScriptAccess\”,\”sameDomain\”,”);
out.println(“\”type\”, \”application/x-shockwave-flash\”,”);
out.println(“\”pluginspage\”, \”http://www.adobe.com/go/getflashplayer\”");
out.println(“);”);
out.println(“} else if (hasRequestedVersion) {“);
// if we\”ve detected an acceptable version
// embed the Flash Content SWF when all tests are passed
out.println(“AC_FL_RunContent(\”src\”, \”AccordianHeader182345208\”,\”width\”, \”100%\”,\”height\”, \”100%\”,\”align\”, \”middle\”,\”id\”, \”AccordianHeader182345208\”,\”quality\”, \”high\”,\”bgcolor\”, \”#ffffff\”,\”name\”, \”AccordianHeader182345208\”,\”allowScriptAccess\”,\”sameDomain\”,\”type\”, \”application/x-shockwave-flash\”,\”pluginspage\”, \”http://www.adobe.com/go/getflashplayer\”);”);
out.println(“} else { // flash is too old or we can’t detect the plugin”);
out.println(“var alternateContent = \’Alternate HTML content should be placed here. \’+ \’This content requires the Adobe Flash Player. \’+ \’<a href=http://www.adobe.com/go/getflash/>Get Flash</a>\’;document.write(alternateContent);”);
// insert non-flash content
out.println(“}”);
// */
out.println(“</script>”);
out.println(“<noscript>”);
out.println(“<object classid=\”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\”");
out.println(“id=\”AccordianHeader182345208\” width=\”100%\” height=\”100%\”");
out.println(“codebase=\”http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab\”>”);
out.println(“<param name=\”movie\” value=\”AccordianHeader182345208.swf\” />”);
out.println(“<param name=\”quality\” value=\”high />”);
out.println(“<param name=\”bgcolor\” value=\”#ffffff />”);
out.println(“<param name=\”allowScriptAccess\” value=\”sameDomain\” />”);
out.println(“<embed src=\”AccordianHeader182345208.swf\” quality=\”high\” bgcolor=\”#ffffff\”");
out.println(“width=\”100%\” height=\”100%\” name=\”AccordianHeader182345208\” align=\”middle\”");
out.println(“play=\”true\”");
out.println(“loop=\”false\”");
out.println(“quality=\”high\”");
out.println(“allowScriptAccess=\”sameDomain\”");
out.println(“type=\”application/x-shockwave-flash\”");
out.println(“pluginspage=\”http://www.adobe.com/go/getflashplayer\”>”);
out.println(“</embed>”);
out.println(“</object>”);
out.println(“</noscript>”);
out.println(“</body>”);
out.println(“</html>”);
} finally {
out.close();
}
}
// <editor-fold defaultstate=”collapsed” desc=”HttpServlet methods. Click on the + sign on the left to edit the code.”>
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return “Short description”;
}// </editor-fold>
}