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).

    注意: 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.