Laden Sie das aem-livecycle-connector-Paket von Package Share der AEM-Instanz herunter.
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:
-
-
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.
-
Navigieren Sie zur AEM Web Console-Konfigurationsseite unter: http://<serverName>:<port>/system/console/configMgr.
-
Durchsuchen Sie die Adobe LiveCycle Client SDK Configuration Component.
-
Klicken Sie auf die Komponente, um URL, Benutzernamen und Kennwort des Konfigurationsservers zu bearbeiten.
-
Überprüfen Sie die Einstellungen und klicken Sie auf Save.
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.
Aufrufen von Document Services
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:
-
Erstellen einer ServiceClientFactory-Instanz
-
Jeder Dienst stellt eine Client-Klasse zur Verfügung. Abhängig vom aufzurufenden Dienst muss die entsprechende Client-Instanz erstellt werden.
-
Aufrufen des Diensts
-
Verarbeiten des Ergebnisses
- 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:
-
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>
-
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">
- Klicken Sie auf aem-lc-connector-sample-pkg-1.0.0.zip, um das Beispielpaket herunterzuladen.
- Laden Sie das angehängte Paket hoch und installieren Sie es in AEM.
- Um ein Microsoft Word-Dokument in PDF zu konvertieren, gehen Sie zu http://<hostname>:<port>/content/livecycle/connector/samples/convertdoc-toPDF.html.
- Wählen Sie die Datei, die in das PDF-Format konvertiert werden soll, und klicken Sie auf Konvertieren.
- 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(); ...
RunAs-Support
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);
Document Services-Liste
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>