Quick Start (SOAP mode): Writing a resource using the Java API

The following Java code example writes a resource called loan.xdp in the repository. The resource is added to the /Applications/FormsApplication/1.0/FormsFolder location. (See Writing Resources.)

/* 
    * This Java Quick Start uses the following JAR files 
    * 1. adobe-repository-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 forms server is not deployed 
    * on JBoss) 
    * 6. commons-code-1.3.jar 
    * 7. jacorb.jar (use a different JAR file if the forms server is not deployed on JBoss) 
    * 8. jnp-client.jar (use a different JAR file if the forms server is not deployed on JBoss) 
    *  
    *  The JBoss files must be kept in the jboss\client folder. You can copy the client folder to  
    *  your local development environment and then include the 3 JBoss JAR files in your class path 
    *   
    *  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/bin/client 
    *  
    * If you want to invoke a remote forms 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 additional JAR files located in the following  
    * path 
    * <install directory>/sdk/client-libs/thirdparty 
    *  
    * For information about the SOAP  
    * mode and the additional JAR files that need to be included,  
    * see "Setting connection properties" in Programming  
    * with AEM Forms 
    *  
    * For complete details about the location of the AEM Forms JAR files,  
    * see "Including LiveCycle Java library files" in Programming  
    * with AEM Forms 
    */ 
import java.io.FileInputStream; 
import java.util.Properties; 
import com.adobe.idp.Document; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; 
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties; 
import com.adobe.repository.bindings.dsc.client.ResourceRepositoryClient; 
import com.adobe.repository.infomodel.Id; 
import com.adobe.repository.infomodel.Lid; 
 
import com.adobe.repository.infomodel.bean.RepositoryInfomodelFactoryBean; 
import com.adobe.repository.infomodel.bean.Resource; 
import com.adobe.repository.infomodel.bean.ResourceContent; 
 
public class WriteFile { 
 
    // This quick start writes Loan.xdp to Applications/FormsApplication/1.0/FormsFolder 
    //Ensure that you create a AEM Forms application named FormsApplication using Workbench 
    public static void main(String[] args) { 
         
        try  
        { 
        //Set connection properties required to invoke AEM Forms                                 
        Properties connectionProps = new Properties(); 
        connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "jnp://[server]:[port]"); 
        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"); 
         
        ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps); 
         
        //Create a ResourceRepositoryClient object 
        ResourceRepositoryClient repositoryClient = new ResourceRepositoryClient(myFactory); 
         
        //Specify the parent path 
         String parentResourcePath = "/Applications/FormsApplication/1.0/FormsFolder"; 
         
        //Create a RepositoryInfomodelFactoryBean object 
         RepositoryInfomodelFactoryBean infomodelFactory = new RepositoryInfomodelFactoryBean(null); 
         
        //Create a Resource object to add to the Repository 
         Resource newResource = (Resource) infomodelFactory.newImage( 
                            new Id(),  
                            new Lid(),  
                            "Loan.xdp");  
                         
        //Create a ResourceContent object that contains the content (file bytes) 
        ResourceContent content = (ResourceContent) infomodelFactory.newResourceContent(); 
             
        //Create a Document that references an XDP file  
        //to add to the Repository 
        FileInputStream myForm = new FileInputStream("C:\\Adobe\Loan.xdp");  
        Document form = new Document(myForm); 
         
        //Set the description and the MIME type 
        content.setDataDocument(form);  
        content.setMimeType("application/vnd.adobe.xdp+xml"); 
                                         
        //Assign content to the Resource object 
        newResource.setContent(content) ; 
             
        //Set a description of the resource 
        newResource.setDescription("An XDP file"); 
                     
        //Commit to repository, and update resource 
        //in memory (by assignment) 
        Resource addResource = repositoryClient.writeResource(parentResourcePath, newResource); 
         
        //Get the description of the returned Resource object 
        System.out.println("The description of the new resource is "+addResource.getDescription()); 
         
        //Close the FileStream object 
        myForm.close();  
         
        } catch (Exception e) { 
             
             e.printStackTrace(); 
           } 
        } 
} 

// Ethnio survey code removed