Quick Start (Base64): Rendering a Guide (deprecated) using the web service API

The following code example renders a form Guide (deprecated) named LoanGuide.xdp to a client web browser using the Forms web service API.

/* 
    * Ensure that you create the Java proxy classes to use  
    * base64 encoding. This is required to populate a BLOB  
    * object with data or retrieve data from a BLOB object. 
    *  
    * For information, see "Creating Java proxy classes using Apache Axis"  
    * in Programming with LiveCycle.   
    */ 
import java.io.IOException; 
import javax.servlet.Servlet; 
import javax.servlet.ServletException; 
import javax.servlet.ServletOutputStream; 
 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import com.adobe.idp.services.ActivityGuideRenderSpec; 
import com.adobe.idp.services.FormsService; 
import com.adobe.idp.services.FormsServiceServiceLocator; 
import com.adobe.idp.services.PDFFormRenderSpec; 
import com.adobe.idp.services.URLSpec; 
import com.adobe.idp.services.BLOB; 
import com.adobe.idp.services.holders.BLOBHolder; 
import com.adobe.idp.services.holders.FormsResultHolder; 
 
 
public class RenderFormGuideWS extends HttpServlet implements Servlet { 
     
    public void doGet(HttpServletRequest req, HttpServletResponse resp) 
        throws ServletException, IOException { 
            doPost(req,resp); 
    } 
     
    public void doPost(HttpServletRequest req, HttpServletResponse resp) 
        throws ServletException, IOException { 
             
            try 
            { 
            //Create a FormsService object and set authentication values 
            com.adobe.idp.services.FormsServiceServiceLocator sl = new FormsServiceServiceLocator(); 
            FormsService formsOb = sl.getFormsService(); 
             
            ((javax.xml.rpc.Stub)formsOb)._setProperty(javax.xml.rpc.Stub. 
            USERNAME_PROPERTY, "administrator"); 
            ((javax.xml.rpc.Stub)formsOb)._setProperty(javax.xml.rpc.Stub. 
            PASSWORD_PROPERTY, "password"); 
         
            //Create a PDFFormRenderSpec object 
            PDFFormRenderSpec pdfFormRenderSpec = new PDFFormRenderSpec(); 
            pdfFormRenderSpec.setCacheEnabled(new Boolean(true)); 
                 
            //Create an ActivityGuideRenderSpec object 
            ActivityGuideRenderSpec activityGuideRenderSpec = new ActivityGuideRenderSpec();  
            activityGuideRenderSpec.setGuidePDF(true); 
                         
            //Specify URI values used by the Forms service  
            URLSpec uriValues = new URLSpec();  
            uriValues.setApplicationWebRoot("http://localhost:8080/FormsWSQS"); 
            uriValues.setContentRootURI("C:\\Adobe"); 
            uriValues.setTargetURL("http://localhost:8080/FormsWSQS/HandleData"); 
             
            //Create class holder objects                 
            BLOBHolder outRenderPDFFormResultDoc = new BLOBHolder();  
            FormsResultHolder formsResult = new FormsResultHolder();  
             
            //Render a form Guide (deprecated) 
            formsOb.renderFormGuide( 
                     "LoanGuide.xdp",              
                      null,                  
                      pdfFormRenderSpec,        
                      activityGuideRenderSpec,  
                      uriValues, 
                      formsResult, 
                      outRenderPDFFormResultDoc);  
         
            //Create a BLOB object that contains form data 
            BLOB formData = formsResult.value.getOutputContent(); 
                 
            //Get the content type of the response and 
            //set the HttpServletResponse object's content type 
            String contentType = formData.getContentType(); 
            resp.setContentType(contentType); 
         
            //Create a ServletOutputStream object 
            ServletOutputStream oOutput = resp.getOutputStream(); 
                             
            //Create a byte array that stores form data in the BLOB object 
            byte[] cContent = formData.getBinaryData(); 
         
            //Write a byte stream back to the web browser.  
            //Pass the byte array 
            oOutput.write(cContent); 
            } 
             
        catch (Exception e) { 
             System.out.println("The following error occurred during this operation " +e.getMessage()); 
            }         
      } 
}