Verbinden von AEM Forms mit Adobe LiveCycle connecting-aem-forms-with-adobe-livecycle

Adobe Experience Manager (AEM) LiveCycle Connector ermöglicht einen unterbrechungsfreien Aufruf von Adobe LiveCycle ES4-Acrobat-Diensten aus AEM-Web-Apps und -Workflows. LiveCycle bietet ein reiches Client-SDK, das Client-Anwendungen ermöglicht, LiveCycle-Dienste mithilfe von Java™-APIs zu starten. AEM LiveCycle Connector vereinfacht die Verwendung dieser APIs innerhalb der OSGi-Umgebung.

Verbinden des AEM-Servers mit Adobe LiveCycle connecting-aem-server-to-adobe-livecycle

AEM LiveCycle Connector ist Teil des AEM Forms-Add-On-Pakets. Nachdem Sie das Add-on-Paket für AEM Forms installiert haben, führen Sie die folgenden Schritte aus, um Details des LiveCycle-Servers zur AEM-Web-Konsole hinzuzufügen.

  1. Suchen Sie die Adobe LiveCycle Client SDK-Konfigurationskomponente im Konfigurations-Manager der AEM-Web-Konsole.
  2. Klicken Sie auf die Komponente, um URL, Benutzernamen und Kennwort des Konfigurations-Servers zu bearbeiten.
  3. Überprüfen Sie die Einstellungen und klicken Sie auf Speichern.

Auch wenn die Eigenschaften selbsterklärend sind, werden die wichtigsten im Folgenden erläutert:

  • Server URL – gibt die URL für den LiveCycle-Server an. Wenn Sie möchten, dass LiveCycle und AEM über HTTPS kommunizieren, starten Sie AEM mit der folgenden JVM

    code language-java
    argument
     -Djavax.net.ssl.trustStore=<<em>path to LC keystore</em>>
    

    Option.

  • Benutzername: Gibt den Benutzernamen des Kontos an, das verwendet wird, um die Kommunikation zwischen AEM und LiveCycle herzustellen. Das Konto ist ein LiveCycle-Benutzerkonto, das zum Start von Acrobat-Diensten berechtigt ist.

  • Kennwort: Gibt das Kennwort an.

  • Dienstname: Gibt die Dienste an, die mit den in den Feldern für Benutzernamen und Kennwort angegebenen Benutzeranmeldeinformationen gestartet werden. Standardmäßig werden beim Starten von LiveCycle-Diensten keine Anmeldeinformationen weitergegeben.

Starten von Dokumentendiensten starting-document-services

Client-Anwendungen können LiveCycle-Dienste programmgesteuert über eine Java™-API, Web-Dienste, Remoting oder REST starten. Für Java™-Clients kann die Anwendung das LiveCycle SDK verwenden. Das LiveCycle SDK stellt eine Java™-API für den Remote-Start dieser Dienste zur Verfügung. Um beispielsweise ein Microsoft® Word-Dokument in das PDF-Format zu konvertieren, startet der Client den GeneratePDFService. Der Aufruf erfolgt mittels folgender Schritte:

  1. Erstellen Sie eine ServiceClientFactory-Instanz.
  2. Jeder Dienst stellt eine Client-Klasse zur Verfügung. Erstellen Sie zum Starten eines Dienstes eine Client-Instanz des Dienstes.
  3. Starten Sie den Dienst und verarbeiten Sie das Ergebnis.

AEM LiveCycle Connector vereinfacht den Ablauf, indem diese Client-Instanzen als OSGi-Dienste bereitgestellt werden, auf die über standardmäßige OSGi-Methoden zugegriffen werden kann. LiveCycle Connector umfasst die folgenden Funktionen:

  • Client-Instanzen als OSGi-Dienst: Die als OSGI-Bundles zusammengestellten Clients sind im Abschnitt Liste der Acrobat-Dienste aufgeführt. Jede Client-JAR-Datei registriert die Client-Instanz als OSGi-Dienst in der Registrierung des OSGi-Dienstes.
  • Weitergabe von Benutzeranmeldeinformationen: Die erforderlichen Verbindungsdetails für die Verbindung mit dem LiveCycle-Server werden an einem zentralen Speicherort verwaltet.
  • ServiceClientFactory-Dienst: Zum Starten der Prozesse kann die Client-Anwendung auf die ServiceClientFactory-Instanz zugreifen.

Starten über Dienstverweise aus der Registrierung des OSGi-Dienstes starting-via-service-references-from-osgi-service-registry

Um einen bereitgestellten Dienst in AEM zu starten, führen Sie folgende Schritte aus:

  1. Legen Sie die Maven-Abhängigkeiten fest. Fügen Sie die Abhängigkeit der erforderlichen Client-JAR-Datei in der Maven-Datei „pom.xml“ hinzu. Fügen Sie die Abhängigkeit mindestens zu den JARs „adobe-livecycle-client“ und „adobe-usermanager-client“ hinzu.

    code language-xml
    <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>
    

    Um einen Dienst zu starten, fügen Sie für den Dienst die entsprechende Maven-Abhängigkeit hinzu. Eine Liste der Abhängigkeiten finden Sie in der Liste der Acrobat-Dienste. Fügen Sie beispielsweise zum Dienst für das Generieren von PDF-Dokumenten die folgende Abhängigkeit hinzu:

    code language-xml
    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    
  2. Rufen Sie den Dienstverweis ab. Besorgen Sie sich ein Handle auf die Dienstinstanz. Wenn Sie eine Java™-Klasse schreiben, können Sie die Anmerkungen für Declarative Services verwenden.

    code language-java
    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
                );
    

    Im obigen Codesnippet wird die createPDF-API von GeneratePdfServiceClient gestartet, um ein Dokument in ein PDF zu konvertieren. Auf einer JSP-Seite können Sie einen ähnlichen Aufruf mithilfe des folgenden Codes durchführen. Der wesentliche Unterschied besteht darin, dass der folgende Code Sling ScriptHelper verwendet, um auf GeneratePdfServiceClient zuzugreifen.

    code language-jsp
    <%@ 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
                );
    

Starten über ServiceClientFactory starting-via-serviceclientfactory

Manchmal ist die ServiceClientFactory-Klasse erforderlich. Beispielsweise benötigen Sie ServiceClientFactory, um Prozesse aufzurufen.

import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;

@Reference
ServiceClientFactoryProvider scfProvider;

...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...

RunAs-Unterstützung runas-support

Für nahezu jeden Acrobat-Dienst in LiveCycle ist eine Authentifizierung erforderlich. Sie können eine der folgenden Optionen verwenden, um diese Dienste zu starten, ohne explizite Anmeldeinformationen im Code anzugeben:

Konfiguration der Zulassungsliste allowlist-configuration

Die LiveCycle Client SDK-Konfiguration enthält eine Einstellung für Dienstnamen. Diese Konfiguration ist eine Liste der Dienste, für die die Aufruflogik standardmäßig Admin-Anmeldeinformationen verwendet. Wenn Sie beispielsweise DirectoryManager-Dienste (Teil der User Management-API) zu dieser Liste hinzufügen, kann der Dienst von jedem Clientcode direkt verwendet werden. Darüber hinaus gibt die Aufrufebene die konfigurierten Anmeldeinformationen automatisch als Teil der an den LiveCycle-Server gesendeten Anfrage weiter.

RunAsManager runasmanager

Im Rahmen der Integration wird ein neuer RunAsManager-Dienst zur Verfügung gestellt. Dieser ermöglicht es Ihnen, die zu verwendenden Anmeldedaten programmgesteuert zu kontrollieren, wenn ein Aufruf an den LiveCycle-Server erfolgt.

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);

Wenn Sie andere Anmeldeinformationen weitergeben möchten, können Sie die überladene Methode verwenden, die eine PasswordCredential-Instanz in Anspruch nimmt.

PasswordCredential credential = new PasswordCredential("administrator","password");
List<Component> components = runAsManager.doPrivileged(new PrivilegedAction<List<Component>>() {
    public List<Component> run() {
        return componentRegistry.getComponents();
    }
},credential);

InvocationRequest-Eigenschaft invocationrequest-property

Wenn Sie einen Prozess aufrufen oder die ServiceClientFactory-Klasse direkt verwenden und eine InvocationRequest erstellen, können Sie eine Eigenschaft festlegen, um anzugeben, dass die Aufrufebene konfigurierte Benutzeranmeldeinformationen verwenden soll.

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 der Acrobat-Dienste document-services-list

Adobe LiveCycle Client SDK API Bundle adobe-livecycle-client-sdk-api-bundle

Folgende Dienste sind verfügbar:

  • 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

Maven-Abhängigkeiten maven-dependencies

<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>

Adobe LiveCycle Client SDK Bundle adobe-livecycle-client-sdk-bundle

Folgende Dienste sind verfügbar:

  • com.adobe.livecycle.dsc.clientsdk.security.RunAsManager
  • com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider

Maven-Abhängigkeiten maven-dependencies-1

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-livecycle-cq-integration-api</artifactId>
  <version>1.1.10</version>
</dependency>

Adobe LiveCycle TaskManager Client Bundle adobe-livecycle-taskmanager-client-bundle

Folgende Dienste sind verfügbar:

  • 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

Maven-Abhängigkeiten maven-dependencies-2

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-taskmanager-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Workflow Client Bundle adobe-livecycle-workflow-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.idp.workflow.client.WorkflowServiceClient

Maven-Abhängigkeiten maven-dependencies-3

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-workflow-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle PDF Generator Client Bundle adobe-livecycle-pdf-generator-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.generatepdf.client.GeneratePdfServiceClient

Maven-Abhängigkeiten maven-dependencies-4

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-generatepdf-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Application Manager Client Bundle adobe-livecycle-application-manager-client-bundle

Folgende Dienste sind verfügbar:

  • com.adobe.idp.applicationmanager.service.ApplicationManager
  • com.adobe.livecycle.applicationmanager.client.ApplicationManager
  • com.adobe.livecycle.design.service.DesigntimeService

Maven-Abhängigkeiten maven-dependencies-5

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-applicationmanager-client-sdk</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Assembler Client Bundle adobe-livecycle-assembler-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.assembler.client.AssemblerServiceClient

Maven-Abhängigkeiten maven-dependencies-6

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-assembler-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Form Data Integration Client Bundle adobe-livecycle-form-data-integration-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.formdataintegration.client.FormDataIntegrationClient

Maven-Abhängigkeiten maven-dependencies-7

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-formdataintegration-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Forms Client Bundle adobe-livecycle-forms-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.formsservice.client.FormsServiceClient

Maven-Abhängigkeiten maven-dependencies-8

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-forms-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Output Client Bundle adobe-livecycle-output-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.output.client.OutputClient

Maven-Abhängigkeiten maven-dependencies-9

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-output-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Reader Extensions Client Bundle adobe-livecycle-reader-extensions-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.readerextensions.client.ReaderExtensionsServiceClient

Maven-Abhängigkeiten maven-dependencies-10

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-reader-extensions-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Rights Manager Client Bundle adobe-livecycle-rights-manager-client-bundle

Folgende Dienste sind verfügbar:

  • 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

Maven-Abhängigkeiten maven-dependencies-11

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-rightsmanagement-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Signatures Client Bundle adobe-livecycle-signatures-client-bundle

Der folgende Dienst ist verfügbar:

  • com.adobe.livecycle.signatures.client.SignatureServiceClientInterface

Maven-Abhängigkeiten maven-dependencies-12

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-signatures-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Truststore Client Bundle adobe-livecycle-truststore-client-bundle

Folgende Dienste sind verfügbar:

  • com.adobe.truststore.dsc.TrustConfigurationService
  • com.adobe.truststore.dsc.CRLService
  • com.adobe.truststore.dsc.CredentialService
  • com.adobe.truststore.dsc.CertificateService

Maven-Abhängigkeiten maven-dependencies-13

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-truststore-client</artifactId>
  <version>11.0.0</version>
</dependency>

Adobe LiveCycle Repository Client Bundle adobe-livecycle-repository-client-bundle

Folgende Dienste sind verfügbar:

  • com.adobe.repository.bindings.ResourceRepository
  • com.adobe.repository.bindings.ResourceSynchronizer

Maven-Abhängigkeiten maven-dependencies-14

<dependency>
  <groupId>com.adobe.livecycle</groupId>
  <artifactId>adobe-repository-client</artifactId>
  <version>11.0.0</version>
</dependency>
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2