Vous consultez actuellement l'aide de la version:
- 6.4
- 6.3
- 6.2
- Anciennes versions
Le connecteur LiveCycle d’Adobe Experience Manager (AEM) permet une invocation transparente des formulaires Adobe sur JEE Document Services à partir des applications Web et des flux de travail AEM. LiveCycle fournit un SDK client enrichi, qui permet aux applications clientes de démarrer les services LiveCycle à l’aide d’API Java. AEM LiveCycle Connector simplifie l’utilisation de ces API dans l’environnement OSGi.
AEM LiveCycle Connector fait partie du package de module complémentaire AEM Forms. Après avoir installé le package de module complémentaire AEM Forms, procédez comme suit pour ajouter des détails du serveur LiveCycle à la console Web AEM.
Bien que les propriétés soient explicites, les plus importantes sont les suivantes :
- URL du serveur : indique l’URL du serveur LiveCycle. Si vous souhaitez que LiveCycle et AEM communiquent via https, démarrez AEM avec l’argument JVM suivant :
-Djavax.net.ssl.trustStore=<chemin d’accès au fichier de clés LC>. - Nom d’utilisateur : indique le nom d’utilisateur du compte utilisé pour établir la communication entre AEM et LiveCycle. Il s’agit du compte d’un utilisateur LiveCycle disposant des autorisations nécessaires pour démarrer les Services de document.
- Mot de passe : indique le mot de passe.
- Nom du service : indique les services démarrés à l’aide des informations d’identification fournies dans les champs Nom d’utilisateur et Mot de passe. Par défaut, aucune information d’identification n’est transmise lors du démarrage des services LiveCycle.
Les applications clientes peuvent démarrer des services LiveCycle par programmation en utilisant une API Java, des services Web, Remoting et REST. Pour les clients Java, l’application peut utiliser le kit SDK LiveCycle. Ce kit SDK fournit une API Java permettant de démarrer ces services à distance. Par exemple, pour convertir un document Microsoft Word au format PDF, le client lance GeneratePDFService. Le flux d’appel se compose des étapes suivantes :
- Instances de client en tant que service OSGi : les clients conditionnés en tant que groupes OSGI sont répertoriés dans la section Liste de Document Services. Chaque jar client enregistre l’instance de client comme service OSGi auprès du registre de services OSGi.
- Propagation des informations d’identification : les détails de connexion requis pour la connexion au serveur LiveCycle sont gérés de manière centralisée.
- Service ServiceClientFactory : pour démarrer les processus, l’application cliente peut accéder à l’instance ServiceClientFactory.
-
Déterminez les dépendances maven. Ajoutez une dépendance au jar client requis dans votre fichier maven pom.xml. Vous devez, au minimum, ajouter une dépendance aux jars adobe-livecycle-client et adobe-usermanager-client.
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-livecycle-client</artifactId> <version>11.0.0</version> </dependency> <dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-usermanager-client</artifactId> <version>11.0.0</version> </dependency> <dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-cq-integration-api</artifactId> <version>11.0.0</version> </dependency>
Pour démarrer un service, ajoutez la dépendance Maven correspondante. Pour consulter la liste des dépendances, reportez-vous à la section Liste de Document Services. Pour le service Generate PDF, par exemple, ajoutez la dépendance suivante :
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-generatepdf-client</artifactId> <version>11.0.0</version> </dependency>
-
Obtenez la référence du service. Ajoutez une poignée à l’instance de service. Si vous écrivez une classe Java, vous pouvez utiliser les annotations de services déclaratifs.
import com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient; import com.adobe.livecycle.generatepdf.client.CreatePDFResult; import com.adobe.idp.Document; @Reference GeneratePdfServiceClient generatePDF; ... Resource r = resourceResolver.getResource("/path/tp/docx"); Document sourceDoc = new Document(r.adaptTo(InputStream.class)); CreatePDFResult result = generatePDF.createPDF2( sourceDoc, extension, //inputFileExtension null, //fileTypeSettings null, //pdfSettings null, //securitySettings settingsDoc, //settingsDoc null //xmpDoc );
Le fragment de code ci-dessus démarre l’API createPDF de GeneratePdfServiceClient pour convertir un document au format PDF. Vous pouvez effectuer le même appel dans un JSP en utilisant le code suivant. La principale différence tient au fait que le code suivant utilise Sling ScriptHelper pour accéder à GeneratePdfServiceClient.
<%@ page import="com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient" %> <%@ page import="com.adobe.livecycle.generatepdf.client.CreatePDFResult" %> <%@ page import="com.adobe.idp.Document" %> GeneratePdfServiceClient generatePDF = sling.getService(GeneratePdfServiceClient.class); Document sourceDoc = ... CreatePDFResult result = generatePDF.createPDF2( sourceDoc, extension, //inputFileExtension null, //fileTypeSettings null, //pdfSettings null, //securitySettings settingsDoc, //settingsDoc null //xmpDoc );
La classe ServiceClientFactory est requise dans certains cas ; pour appeler des processus, par exemple.
import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider; import com.adobe.idp.dsc.clientsdk.ServiceClientFactory; @Reference ServiceClientFactoryProvider scfProvider; ... ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory(); ...
La plupart des Services de document de LiveCycle nécessitent une authentification. Vous pouvez utiliser l’une des options suivantes pour démarrer ces services sans fournir d’informations d’identification explicites dans le code :
La configuration du SDK client LiveCycle contient un paramètre sur les noms de service. Il s’agit d’une liste de services pour lesquels la logique d’appel utilise des informations d’identification prêtes à l’emploi. Si vous ajoutez, par exemple, des services DirectoryManager (qui font partie de l’API de gestion d’utilisateur) à cette liste, tout code client peut utiliser directement le service et la couche d’appel transmet automatiquement les informations d’identification configurées dans le cadre de la demande envoyée au serveur LiveCycle.
Dans le cadre de l’intégration, un nouveau service RunAsManager est fourni. Il permet de contrôler par programmation les informations d’identification à utiliser quand vous émettez un appel au serveur LiveCycle.
import com.adobe.livecycle.dsc.clientsdk.security.PasswordCredential; import com.adobe.livecycle.dsc.clientsdk.security.PrivilegedAction; import com.adobe.livecycle.dsc.clientsdk.security.RunAsManager; import com.adobe.idp.dsc.registry.component.ComponentRegistry; @Reference private RunAsManager runAsManager; List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() { public List<Component> run() { return componentRegistry.getComponents(); } }); assertNotNull(components);
Si vous souhaitez transmettre des informations d’identification, vous pouvez utiliser la méthode surchargée qui prend une instance de PasswordCredential.
PasswordCredential credential = new PasswordCredential("administrator","password"); List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() { public List<Component> run() { return componentRegistry.getComponents(); } },credential);
Si vous appelez un processus ou utilisez directement la classe ServiceClientFactory et créez une InvocationRequest, vous pouvez spécifier une propriété pour indiquer que cette couche d’appel doit utiliser des informations d’identification configurées.
import com.adobe.idp.dsc.InvocationResponse import com.adobe.idp.dsc.InvocationRequest import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider import com.adobe.idp.dsc.clientsdk.ServiceClientFactory import com.adobe.livecycle.dsc.clientsdk.InvocationProperties ServiceClientFactoryProvider scfp = sling.getService(ServiceClientFactoryProvider.class) ServiceClientFactory serviceClientFactory = scfp.getDefaultServiceClientFactory() InvocationRequest ir = serviceClientFactory.createInvocationRequest("sample/LetterSubmissionProcess", "invoke", new HashMap(), true); //Here we are invoking the request with system user ir.setProperty(InvocationProperties.INVOKER_TYPE,InvocationProperties.INVOKER_TYPE_SYSTEM) InvocationResponse response = serviceClientFactory.getServiceClient().invoke(ir);
Liste de Services de document
Groupe d’API de SDK client Adobe LiveCycle
Groupe de SDK client Adobe LiveCycle
Groupe du client Adobe Livecycle TaskManager
Groupe du client Adobe LiveCycle Workflow
Groupe du client Adobe LiveCycle PDF Generator
Groupe du client Adobe LiveCycle Application Manager
Groupe du client Adobe LiveCycle Assembler
Groupe du client Adobe LiveCycle Form Data Integration
Groupe du client Adobe LiveCycle Forms
Groupe du client Adobe LiveCycle Output
Groupe du client Adobe LiveCycle Reader Extensions
Groupe du client Adobe LiveCycle Rights Manager
Groupe du client Adobe LiveCycle Signatures
Les services suivants sont disponibles :
- com.adobe.idp.um.api.AuthenticationManager
- com.adobe.idp.um.api.DirectoryManager
- com.adobe.idp.um.api.AuthorizationManager
- com.adobe.idp.dsc.registry.service.ServiceRegistry
- com.adobe.idp.dsc.registry.component.ComponentRegistry
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-livecycle-client</artifactId> <version>11.0.0</version> </dependency> <dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-usermanager-client</artifactId> <version>11.0.0</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.livecycle.dsc.clientsdk.security.RunAsManager
- com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-livecycle-cq-integration-api</artifactId> <version>1.1.10</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.idp.taskmanager.dsc.client.task.TaskManager
- com.adobe.idp.taskmanager.dsc.client.TaskManagerQueryService
- com.adobe.idp.taskmanager.dsc.client.queuemanager.QueueManager
- com.adobe.idp.taskmanager.dsc.client.emailsettings.EmailSettingService
- com.adobe.idp.taskmanager.dsc.client.endpoint.TaskManagerEndpointClient
- com.adobe.idp.taskmanager.dsc.client.userlist.UserlistService
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-taskmanager-client</artifactId> <version>11.0.0</version> </dependency>
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-workflow-client-sdk</artifactId> <version>11.0.0</version> </dependency>
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-generatepdf-client</artifactId> <version>11.0.0</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.idp.applicationmanager.service.ApplicationManager
- com.adobe.livecycle.applicationmanager.client.ApplicationManager
- com.adobe.livecycle.design.service.DesigntimeService
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-applicationmanager-client-sdk</artifactId> <version>11.0.0</version> </dependency>
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-assembler-client</artifactId> <version>11.0.0</version> </dependency>
Le service suivant est disponible :
- com.adobe.livecycle.formdataintegration.client.FormDataIntegrationClient
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-formdataintegration-client</artifactId> <version>11.0.0</version> </dependency>
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-forms-client</artifactId> <version>11.0.0</version> </dependency>
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-output-client</artifactId> <version>11.0.0</version> </dependency>
Le service suivant est disponible :
- com.adobe.livecycle.readerextensions.client.ReaderExtensionsServiceClient
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-reader-extensions-client</artifactId> <version>11.0.0</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.livecycle.rightsmanagement.client.DocumentManager
- com.adobe.livecycle.rightsmanagement.client.EventManager
- com.adobe.livecycle.rightsmanagement.client.ExternalUserManager
- com.adobe.livecycle.rightsmanagement.client.LicenseManager
- com.adobe.livecycle.rightsmanagement.client.WatermarkManager
- com.adobe.livecycle.rightsmanagement.client.PolicyManager
- com.adobe.livecycle.rightsmanagement.client.AbstractPolicyManager
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-rightsmanagement-client</artifactId> <version>11.0.0</version> </dependency>
Le service suivant est disponible :
- com.adobe.livecycle.signatures.client.SignatureServiceClientInterface
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-signatures-client</artifactId> <version>11.0.0</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.truststore.dsc.TrustConfigurationService
- com.adobe.truststore.dsc.CRLService
- com.adobe.truststore.dsc.CredentialService
- com.adobe.truststore.dsc.CertificateService
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-truststore-client</artifactId> <version>11.0.0</version> </dependency>
Les services suivants sont disponibles :
- com.adobe.repository.bindings.ResourceRepository
- com.adobe.repository.bindings.ResourceSynchronizer
<dependency> <groupId>com.adobe.livecycle</groupId> <artifactId>adobe-repository-client</artifactId> <version>11.0.0</version> </dependency>