Quick Start (SOAP mode): Passing documents to the Output Service using the Java API

The following Java quick start retrieves the file Loan.xdp from Content Services. This XDP file is located in the space /Company Home/Form Designs. The XDP file is returned in a com.adobe.idp.Document instance. The com.adobe.idp.Document instance is passed to the Output service. The non-interactive form is saved as a PDF file named Loan.pdf on the client computer. Because the File URI option is set, the PDF file Loan.pdf is also saved on the J2EE application server hosting LiveCycle. (See Passing Documents located in Content Services (deprecated) to the Output Service.)

/* 
    * This Java Quick Start uses the SOAP mode and contains the following JAR files 
    * in the class path: 
    * 1. adobe-output-client.jar 
    * 2. adobe-livecycle-client.jar 
    * 3. adobe-usermanager-client.jar 
    * 4. adobe-utilities.jar 
    * 5. jbossall-client.jar (use a different JAR file if the LiveCycle Server is not deployed 
    * on JBoss) 
    * 6. activation.jar (required for SOAP mode) 
    * 7. axis.jar (required for SOAP mode) 
    * 8. commons-codec-1.3.jar (required for SOAP mode) 
    * 9.  commons-collections-3.1.jar  (required for SOAP mode) 
    * 10. commons-discovery.jar (required for SOAP mode) 
    * 11. commons-logging.jar (required for SOAP mode) 
    * 12. dom3-xml-apis-2.5.0.jar (required for SOAP mode) 
    * 13. jaxen-1.1-beta-9.jar (required for SOAP mode) 
    * 14. jaxrpc.jar (required for SOAP mode) 
    * 15. log4j.jar (required for SOAP mode) 
    * 16. mail.jar (required for SOAP mode) 
    * 17. saaj.jar (required for SOAP mode) 
    * 18. wsdl4j.jar (required for SOAP mode) 
    * 19. xalan.jar (required for SOAP mode) 
    * 20. xbean.jar (required for SOAP mode) 
    * 21. xercesImpl.jar (required for SOAP mode) 
    * 22. adobe-contentservices-client.jar 
    *  
    *  These JAR files are located in the following path: 
    * <install directory>/sdk/client-libs/common 
    *  
    * The adobe-utilities.jar file is located in the following path: 
    * <install directory>/sdk/client-libs/jboss 
    *  
    * The jbossall-client.jar file is located in the following path: 
    * <install directory>/jboss/client 
    *  
    * SOAP required JAR files are located in the following path: 
    * <install directory>/sdk/client-libs/thirdparty 
    *  
    * If you want to invoke a remote LiveCycle Server instance and there is a 
    * firewall between the client application and the server, then it is  
    * recommended that you use the SOAP mode. When using the SOAP mode,  
    * you have to include these additional JAR files 
    *  
    * For information about the SOAP  
    * mode, see "Setting connection properties" in Programming  
    * with LiveCycle 
    */ 
import com.adobe.livecycle.contentservices.client.CRCResult; 
import com.adobe.livecycle.contentservices.client.impl.DocumentManagementServiceClientImpl; 
import com.adobe.livecycle.output.client.*; 
import java.util.*; 
import java.io.File; 
import java.io.FileInputStream; 
import com.adobe.idp.Document; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
 
 
public class CreatePDFFFromContentServicesSoap { 
 
    public static void main(String[] args) { 
         
        try{ 
        //Set connection properties required to invoke LiveCycle using SOAP mode                                 
        Properties connectionProps = new Properties(); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://hiro-xp:8080"); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_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 an OutputClient object 
        OutputClient outClient = new OutputClient(myFactory);  
                         
        //Reference form data                         
        FileInputStream fileInputStream = new FileInputStream("C:\\Adobe\Loan.xml");     
        Document inXMData = new Document (fileInputStream); 
                 
        //Set PDF run-time options     
        PDFOutputOptionsSpec outputOptions = new PDFOutputOptionsSpec(); 
        outputOptions.setFileURI("C:\\Adobe\Loan.pdf"); // this PDF form is saved on the server 
         
        //Get the form design from Content Services 
        Document formDesign =  GetFormDesign(myFactory); 
             
        //Set rendering run-time options 
        RenderOptionsSpec pdfOptions = new RenderOptionsSpec();  
        pdfOptions.setLinearizedPDF(true); 
        pdfOptions.setAcrobatVersion(AcrobatVersion.Acrobat_9); 
                         
        //Create a non-interactive PDF document             
        OutputResult outputDocument = outClient.generatePDFOutput2( 
            TransformationFormat.PDF, 
            "C:\\Adobe", 
            formDesign, 
            outputOptions, 
            pdfOptions, 
            inXMData 
        ); 
                 
        //Save the non-interactive PDF form as a PDF file on the client computer 
        Document pdfForm = outputDocument.getGeneratedDoc(); 
        File myFile = new File("C:\\Adobe\Loan.pdf"); 
        pdfForm.copyToFile(myFile); 
        } 
        catch (Exception ee) 
        { 
            ee.printStackTrace(); 
        } 
    } 
     
    //Retrieve the form design from Content Services ES2 
    private static Document GetFormDesign(ServiceClientFactory myFactory) 
    { 
        try{ 
             
        //Create a DocumentManagementServiceClientImpl object 
        DocumentManagementServiceClientImpl    docManager = new DocumentManagementServiceClientImpl(myFactory);  
             
        //Specify the name of the store and the content to retrieve 
           String storeName = "SpacesStore"; 
           String nodeName  = "/Company Home/Form Designs/Loan.xdp"; 
 
           //Retrieve /Company Home/Form Designs/Loan.xdp 
           CRCResult content = docManager.retrieveContent( 
                     storeName, 
                     nodeName, 
                     ""); 
     
           //Return the Document instance 
            Document doc =content.getDocument();  
            return  doc; 
         } 
             
        catch(Exception e) 
        { 
            e.printStackTrace(); 
        } 
        return null;  
    } 
}