Adobe® Experience Manager (AEM) LiveCycle Connector ermöglicht unterbrechungsfreies Abrufen von Adobe® LiveCycle® ES4 Document Services aus AEM-Web-Apps und -Workflows. LiveCycle stellt einen Rich-Client-SDK bereit, der es Clientanwendungen ermöglicht, die Dienste von LiveCycle mit Java™-APIs abzurufen. AEM LiveCycle Connector vereinfacht die Verwendung dieser APIs innerhalb der OSGi-Umgebung.

Erste Schritte

Sie können AEM LiveCycle Connector aus Package Share installieren, indem Sie die folgenden Schritte ausführen:

  1. Laden Sie das aem-livecycle-connector-Paket von Package Share der AEM-Instanz herunter.

  2. Klicken Sie im Paket-Explorer auf Install, um das Paket zu installieren.

Sobald das Paket installiert ist, geben Sie über die Konfigurationseinstellungen in der AEM Web Console die LiveCycle-Serverdetails an.

  1. Navigieren Sie zur AEM Web Console-Konfigurationsseite unter: http://<serverName>:<port>/system/console/configMgr.

  2. Durchsuchen Sie die Adobe LiveCycle Client SDK Configuration Component.

  3. Klicken Sie auf die Komponente, um URL, Benutzernamen und Kennwort des Konfigurationsservers zu bearbeiten.

  4. Überprüfen Sie die Einstellungen und klicken Sie auf Save.

123

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

  • Server URL – URL für den LiveCycle-Server. Wenn LiveCycle und AEM über HTTPS kommunizieren sollen, starten Sie AEM mit der Option -Djavax.net.ssl.trustStore=<Pfad zu LC-Keystore>.
  • Username – Benutzername des Kontos, das für Aufrufe von AEM zu LiveCycle verwendet wird. Dies kann jeder LiveCycle-Benutzer sein, der die Berechtigung hat, Document Services aufzurufen.
  • Password– Benutzerkennwort.
  • Service Name – Dienste, die mithilfe der in „Username“ und „Password“ angegebenen Benutzerinformationen aufgerufen werden sollen. Standardmäßig werden beim Aufrufen von LiveCycle-Diensten keine Benutzerinformationen weitergegeben.

Clientanwendungen können LiveCycle-Dienste programmgesteuert über eine Java API, Webdienste, Remoting und REST aufrufen. Bei Java-Clients kann die Anwendung das LiveCycle SDK verwenden, das eine Java API zur Verfügung stellt, um diese Dienste per Remote-Zugriff aufzurufen. Um beispielsweise ein Microsoft® Word-Dokument in PDF zu konvertieren, muss der Client GeneratePDFService aufrufen. Der Aufruf wird mittels folgender Schritte ausgeführt:

  1. Erstellen einer ServiceClientFactory-Instanz

  2. Jeder Dienst stellt eine Client-Klasse zur Verfügung. Abhängig vom aufzurufenden Dienst muss die entsprechende Client-Instanz erstellt werden.

  3. Aufrufen des Diensts

  4. Verarbeiten des Ergebnisses

AEM LiveCycle Connector vereinfacht diesen Ablauf, indem diese Client-Instanzen als OSGi-Dienste offengelegt werden, auf die über standardmäßige OSGi-Methoden zugegriffen werden kann. Die hohe Zugriffsebene umfasst folgende Funktionen: 
  • Client-Instanzen als OSGi-Dienst – Die als OSGI-Pakete gebündelten Clients sind im Abschnitt Document Services-Liste aufgeführt. Jede Client-JAR-Datei registriert wiederum die Client-Instanz als OSGi-Dienst in der OSGi Service Registry.
  • Weitergabe von Benutzerinformationen – Die erforderlichen Verbindungsdetails für die Verbindung mit dem LiveCycle-Server werden nun an einem zentralen Speicherort verwaltet.
  • ServiceClientFactory-Dienst – Die Clientanwendung kann immer noch auf die ServiceClientFactory-Instanz zugreifen, falls Prozesse aufgerufen werden müssen.

Aufrufen über Service References aus der OSGi Service Registry

Um einen angezeigten Dienst aus AEM aufzurufen, führen Sie folgende Schritte aus:

  1. Legen Sie Maven-Abhängigkeiten fest.

    Fügen Sie „dependency“ in der erforderlichen Client-JAR-Datei in maven pom.xml hinzu. Sie müssen „dependency“ mindestens zu den JARs „adobe-livecycle-client“ und „adobe-usermanager-client“ hinzufügen.

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

    Fügen Sie nun abhängig von dem Dienst, der aufgerufen werden soll, die entsprechende Maven-Abhängigkeit aus der unten stehenden Tabelle hinzu (siehe Abschnitt „Document Service-Liste“). Geben Sie beispielsweise für „Generate PDF“ die folgende Abhängigkeit ein:

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
  2. Rufen Sie die Dienstreferenz ab.

    Machen Sie sich mit der Dienstinstanz vertraut. Wenn Sie eine Java-Klasse schreiben, können Sie die Declarative Services-Anmerkungen verwenden.

    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 Code-Fragment rufen wir die createPDF-API von GeneratePdfServiceClient auf, um ein Dokument in das PDF-Format zu konvertieren. Sie implementiert die gleiche Logik wie im quickstart-Beispiel erläutert.

    Auf einer JSP-Seite können Sie den gleichen Aufruf mithilfe des folgenden Codes durchführen. Der wichtigste Unterschied liegt hierbei darin, wie der Zugriff auf GeneratePdfServiceClient mithilfe von Sling ScriptHelper erfolgt.

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

Beispielpaket

Sie können das folgende Beispielpaket für die Konvertierung eines Microsoft Word-Dokuments in PDF herunterladen und verwenden.

Herunterladen

<p">Führen Sie die folgenden Schritte aus, um das Beispiel zu verwenden:</p">

  1. Klicken Sie auf aem-lc-connector-sample-pkg-1.0.0.zip, um das Beispielpaket herunterzuladen.
  2. Laden Sie das angehängte Paket hoch und installieren Sie es in AEM.
  3. Um ein Microsoft Word-Dokument in PDF zu konvertieren, gehen Sie zu http://<hostname>:<port>/content/livecycle/connector/samples/convertdoc-toPDF.html.
  4. Wählen Sie die Datei, die in das PDF-Format konvertiert werden soll, und klicken Sie auf Konvertieren.
  5. Um den Code für diesen Dienst mit CRXDE Lite zu durchsuchen, gehen Sie zu apps/livecycle/connector/samples/pdfg/POST.jsp.

Aufrufen über ServiceClientFactory

In einigen Fällen, z. B. beim Aufrufen eines Prozesses, muss die Client-Logik auf ServiceClientFactory zugreifen.

import com.adobe.livecycle.dsc.clientsdk.ServiceClientFactoryProvider;
import com.adobe.idp.dsc.clientsdk.ServiceClientFactory;
 
@Reference
ServiceClientFactoryProvider scfProvider;
 
...
ServiceClientFactory scf = scfProvider.getDefaultServiceClientFactory();
...

Für die meisten Document Services in LiveCycle ist eine Authentifizierung erforderlich. Es ist möglich, diese Dienste aufrufen, ohne spezifische Benutzerdaten im Code zur Verfügung zu stellen. Sie können eine der folgenden Optionen verwenden.

Whitelist-Konfiguration

Die LiveCycle Client SDK-Konfiguration enthält eine Einstellung für Dienstnamen. Dies ist eine Liste der Dienste, für die die Aufruflogik Administratorberechtigungen für den sofortigen Einsatz verwendet (Teil derselben Konfiguration). Wenn Sie beispielsweise DirectoryManager-Dienste (Teil der User Management-API) zur Liste hinzufügen, kann jeder Client-Code den Dienst direkt verwenden und die Aufrufebene gibt die konfigurierten Benutzerdaten automatisch im Rahmen der an den LiveCycle-Server gesendeten Anfrage weiter.

RunAsManager

Als Teil 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 zum 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 Anmeldedaten weitergeben möchten, können Sie die Overloading-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

Wenn Sie einen Prozess aufrufen oder ServiceClientFactory direkt verwenden und eine InvocationRequest erstellen, können Sie eine Eigenschaft festlegen, um anzugeben, dass die Aufrufebene konfigurierte Benutzerdaten 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);

Adobe LiveCycle Client SDK API Bundle


Bereitgestellte Dienste:

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

<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


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle TaskManager Client Bundle


Bereitgestellte Dienste:

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


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

Adobe LiveCycle Workflow Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle PDF Generator Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:


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

Adobe LiveCycle Application Manager Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:


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

Adobe LiveCycle Assembler Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Form Data Integration Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Forms Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Output Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Reader Extensions Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Rights Manager Client Bundle


Bereitgestellte Dienste:

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

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

Adobe LiveCycle Signatures Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Truststore Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Adobe LiveCycle Repository Client Bundle


Bereitgestellte Dienste:

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

Maven-Abhängigkeiten:

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

Ressourcen

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie