API Quick Starts (Code Examples) > Forms Service API Quick Starts > Quick Start: Handling a form containing a calculation script using the Java API

Quick Start: Handling a form containing a calculation script using the Java API
The following code example processes a form that contains a calculation script and writes the results back to the client web browser. (See Calculating Form Data.)
/*
 * This Java Quick Start uses the following JAR files
 * 1. adobe-forms-client.jar
 * 2. adobe-livecycle-client.jar
 * 3. adobe-usermanager-client.jar
 * 
 *  (Because Forms quick starts are implemented as Java servlets, it is 
 *  not necessary to include J2EE specific JAR files - the Java project
 *  that contains this quick start is exported as a WAR file which
 *  is deployed to the J2EE application server)
 *  
 *  These JAR files are located in the following path:
 * <install directory>/Adobe/LiveCycle8/LiveCycle_ES_SDK/client-libs
 * 
 * For complete details about the location of these JAR files, 
 * see "Including LiveCycle ES library files" in Programming with LiveCycle ES
 */
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.livecycle.formsservice.client.*;
import java.util.*;
import java.io.InputStream;
import com.adobe.idp.Document;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
 
public class CalculateData 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{
			//Set connection properties required to invoke LiveCycle ES								
			Properties connectionProps = new Properties();
			connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
			connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);          
			connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
			connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
			connectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
			
			//Create a ServiceClientFactory object
			ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
				
			//Create a FormsServiceClient object
			FormsServiceClient formsClient = new FormsServiceClient(myFactory); 
		
			//Get form data to pass to the processFormSubmission method
			Document formData = new Document(req.getInputStream()); 
 
			//Set run-time options
			RenderOptionsSpec processSpec = new RenderOptionsSpec(); 
			processSpec.setLocale("en_US");
			 				 	
			//Invoke the processFormSubmission method
			FormsResult formOut = formsClient.processFormSubmission(formData,"CONTENT_TYPE=application/pdf&CONTENT_TYPE=application/vnd.adobe.xdp+xml","",processSpec);
			
			//Get the processing state
			short processState = formOut.getAction();
			
			//Determine if the form data is calculated
			if (processState == 1) 
			{
				
			 //Write the data back to to the client web browser
			 ServletOutputStream oOutput = resp.getOutputStream();
			 Document calData = formOut.getOutputContent();
				  
			 //Create an InputStream object
			 InputStream inputStream = calData.getInputStream();
		
			 //Get the size of the InputStream object
			 int size = inputStream.available();
		
			 //Create and populate a byte array	
			 byte[] data = new byte[size];
			inputStream.read(data);
										
			 //Write the byte stream back to the web browser
			 oOutput.write(data);
			 }
			}
		catch (Exception e) {
			 System.out.println("The following exception occurred: "+e.getMessage());
		}
	}
}

API Quick Starts (Code Examples) > Forms Service API Quick Starts > Quick Start: Handling a form containing a calculation script using the Java API

Programming with LiveCycle ES (LiveDocs)
Adobe LiveCycle ES Update 1

 

Send me an e-mail when comments are added to this page | Comment Report

Current page: http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/help/000084.html