Application Manager 서비스에 SOAP(Java API Quick Start)를 사용할 수 있습니다.
빠른 시작: Java API(SOAP)를 사용하여 애플리케이션 배포
빠른 시작: Java API(SOAP)를 사용하여 애플리케이션 제거
애플리케이션 관리자 API는 AEM Forms LCA 파일만 지원합니다. LiveCycle ES2 및 ES4의 LCA 파일은 지원하지 않습니다.
AEM Forms 작업은 AEM Forms 강력한 형식의 API를 사용하여 수행할 수 있으며 연결 모드는 SOAP로 설정해야 합니다.
AEM Forms로 프로그래밍에 있는 SOAP(Java API) 빠른 시작은 Unix와 같은 다른 운영 체제를 사용하는 경우 Forms을 기반으로 합니다. Windows 특정 경로를 해당 운영 체제에서 지원하는 경로로 바꿉니다. 마찬가지로, 다른 J2EE 응용 프로그램 서버를 사용하는 경우 올바른 연결 속성을 지정해야 합니다. 자세한 내용은 연결 속성 설정.
다음 Java 코드 예제에서는 이름이 인 기존 LCA 파일을 기반으로 응용 프로그램을 가져옵니다 EncryptDocument.lca.
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-livecycle-client.jar
* 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
* 19. adobe-workflow-client-sdk.jar
* 20. adobe-applicationmanager-client-sdk.jar
* 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
*
*
* <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
*/
import java.io.FileInputStream;
import java.util.*;
import com.adobe.idp.Document;
import com.adobe.idp.applicationmanager.application.ApplicationStatus;
import com.adobe.idp.applicationmanager.client.ApplicationManager;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class DeployApplication {
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, "https://[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");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Get the AEM Forms application to deploy
FileInputStream fileApp = new FileInputStream("C:\\Adobe\EncryptDocument.lca");
Document lcApp = new Document(fileApp);
//Create an ApplicationManager object
ApplicationManager appManager = new ApplicationManager(myFactory);
//Import the application into the production server
ApplicationStatus appStatus = appManager.importApplicationArchive(lcApp);
int status = appStatus.getStatusCode();
//Determine if the application was successfully deployed
if (status==1)
System.out.println("The application was successfully deployed");
else
System.out.println("The application was not successfully deployed. The status is "+status);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
다음 Java 코드 예는 라는 응용 프로그램을 제거합니다 EncryptDocument.
/*
* This Java Quick Start uses the SOAP mode and contains the following JAR files
* in the class path:
* 1. adobe-livecycle-client.jar
* 2. adobe-usermanager-client.jar
* 3. activation.jar (required for SOAP mode)
* 4. axis.jar (required for SOAP mode)
* 5. commons-codec-1.3.jar (required for SOAP mode)
* 6. commons-collections-3.2.jar (required for SOAP mode)
* 7. commons-discovery.jar (required for SOAP mode)
* 8. commons-logging.jar (required for SOAP mode)
* 9. dom3-xml-apis-2.5.0.jar (required for SOAP mode)
* 10. jaxen-1.1-beta-9.jar (required for SOAP mode)
* 11. jaxrpc.jar (required for SOAP mode)
* 12. log4j.jar (required for SOAP mode)
* 13. mail.jar (required for SOAP mode)
* 14. saaj.jar (required for SOAP mode)
* 15. wsdl4j.jar (required for SOAP mode)
* 16. xalan.jar (required for SOAP mode)
* 17. xbean.jar (required for SOAP mode)
* 18. xercesImpl.jar (required for SOAP mode)
* 19. adobe-workflow-client-sdk.jar
* 20. adobe-applicationmanager-client-sdk.jar
*
* 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
*
*
* <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
*/
import java.util.*;
import com.adobe.idp.applicationmanager.application.Application;
import com.adobe.idp.applicationmanager.application.ApplicationId;
import com.adobe.idp.applicationmanager.client.ApplicationManager;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactoryProperties;
public class RemoveApplication {
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, "https://[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");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
//Create a ComponentRegistryClient object
ApplicationManager appManager = new ApplicationManager(myFactory);
//Get all the deployed applications
List allApps = appManager.getApplications();
//Iterate through the applications
Iterator iter= allApps.iterator();
while (iter.hasNext()) {
//Cast each element to an Application object
Application myApplication = (Application)iter.next();
ApplicationId appID = myApplication.getApplicationId();
String appName = appID.getApplicationName();
System.out.println("The name of the AEM Forms application is "+ appID.getApplicationName());
//Determine the name of the application
if (appName.compareTo("EncryptDocument")==0)
{
//Remove the application
appManager.removeApplication(appID);
System.out.println("The "+ appID.getApplicationName() +" application was removed.");
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}