Create Java application logic for the servlet

Create Java application logic that invokes the FirstAppSolution/PreLoanProcess process from within the Java servlet. The following code shows the syntax of the SubmitXML Java Servlet:

    public class SubmitXML 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 { 
            //Add code here to invoke the FirstAppSolution/PreLoanProcess process 
            }

Normally, you would not place client code within a Java servlet’s doGet or doPost method. A better programming practice is to place this code within a separate class. Then instantiate the class from within the doPost method (or doGet method), and call the appropriate methods. However, for code brevity, code examples are kept to a minimum and are placed in the doPost method.

To invoke the FirstAppSolution/PreLoanProcess process using the Invocation API, perform the following tasks:

  1. Include client JAR files, such as adobe-livecycle-client.jar, in your Java project’s class path. For information about the location of these files, see Including LiveCycle Java library files .

  2. Retrieve the name, phone, and amount values that is submitted from the HTML page. Use these values to dynamically create an XML data source that is sent to the FirstAppSolution/PreLoanProcess process. You can use org.w3c.dom classes to create the XML data source (this application logic is shown in the following code example).

  3. Create a ServiceClientFactory object that contains connection properties. (See Setting connection properties .)

  4. Create a ServiceClient object by using its constructor and passing the ServiceClientFactory object. A ServiceClient object lets you invoke a service operation. It handles tasks such as locating, dispatching, and routing invocation requests.

  5. Create a java.util.HashMap object by using its constructor.

  6. Invoke the java.util.HashMap object’s put method for each input parameter to pass to the long-lived process. Ensure that you specify the name of the process’s input parameters. Because the FirstAppSolution/PreLoanProcess process requires one input parameter of type XML (named formData ), you only have to invoke the put method once.

    //Get the XML to pass to the FirstAppSolution/PreLoanProcess process 
    org.w3c.dom.Document inXML = GetDataSource(name,phone,amount); 
                 
    //Create a Map object to store the parameter value 
    Map params = new HashMap(); 
    params.put("formData", inXML); 
  7. Create an InvocationRequest object by invoking the ServiceClientFactory object’s createInvocationRequest method and passing the following values:

    • A string value that specifies the name of the long-lived process to invoke. To invoke the FirstAppSolution/PreLoanProcess process, specify FirstAppSolution/PreLoanProcess .

    • A string value that represents the process operation name. The name of the long-lived process operation is invoke .

    • The java.util.HashMap object that contains the parameter values that the service operation requires.

    • A Boolean value that specifies false , which creates an asynchronous request (this value is applicable to invoke a long-lived process).

    Note: A short-lived process can be invoked by passing the value true as the fourth parameter of the createInvocationRequest method. Passing the value true creates a synchronous request.
  8. Send the invocation request to LiveCycle by invoking the ServiceClient object’s invoke method and passing the InvocationRequest object. The invoke method returns an InvocationReponse object.

  9. A long-lived process returns a string value that represents an invocation identification value. Retrieve this value by invoking the InvocationReponse object’s getInvocationId method.

    //Send the invocation request to the long-lived process and  
    //get back an invocation response object 
    InvocationResponse lcResponse = myServiceClient.invoke(lcRequest); 
    String invocationId = lcResponse.getInvocationId();
  10. Write the invocation identification value to the client web browser. You can use a java.io.PrintWriter instance to write this value to the client web browser.

// Ethnio survey code removed