連接AEM Forms與AdobeLiveCycle

Adobe Experience Manager(AEM)LiveCycle連接器可讓AdobeLiveCycleES4檔案服務從Web應用程式和工作流程AEM中順暢地呼叫。 LiveCycle提供rich client SDK,可讓用戶端應用程式使用Java API啟動LiveCycle服務。 AEMLiveCycle連接器可簡化在OSGi環境中使用這些API的作業。

將服AEM務器連接到AdobeLiveCycle

AEMLiveCycle連接器是AEM Forms附加軟體包的一部分。 安裝AEM Forms附加軟體包後,請執行以下步驟,將LiveCycle伺服器的詳細資訊添加到AEMWeb控制台。

  1. 在Web控AEM制台配置管理器中,找到AdobeLiveCycle客戶端SDK配置元件。
  2. 按一下元件可編輯配置伺服器URL、用戶名和口令。
  3. 查看設定並按一下​保存

雖然屬性是自解釋的,但重要的是:

  • 伺服器URL —— 指定LiveCycle伺服器的URL。如果您想要LiveCycle並AEM透過https通訊,請從AEM下列JVM開始

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

    的雙曲餘切值。

  • Username —— 指定用於建立與LiveCycle之間通信的帳戶的用AEM戶名。該帳戶是具有啟動「檔案服務」權限的LiveCycle使用者帳戶。

  • 密碼-指定密碼。

  • 服務名 -指定使用「用戶名」和「密碼」欄位中提供的用戶憑據啟動的服務。預設情況下,啟動LiveCycle服務時不傳遞任何憑據。

啟動文檔服務

用戶端應用程式可使用Java API、Web Services、Remoting和REST以程式設計方式啟動LiveCycle服務。 對於Java用戶端,應用程式可使用LiveCycleSDK。 LiveCycleSDK提供Java API,以遠端啟動這些服務。 例如,若要將Microsoft Word檔案轉換為PDF,用戶端會啟動GeneratePDFervice。 調用流由以下步驟組成:

  1. 建立ServiceClientFactory實例。
  2. 每個服務都提供一個客戶機類。 要啟動服務,請建立服務的客戶端實例。
  3. 啟動服務並處理結果。

AEMLiveCycle連接器將這些用戶端例項公開為OSGi服務,可使用標準OSGi方式存取,以簡化流程。 LiveCycle連接器提供下列功能:

  • 作為OSGi服務的客戶端實例:打包為OSGI捆綁包的客戶機列在文檔服務清單部分中。 每個客戶端jar都將客戶端實例註冊為OSGi服務註冊表。
  • 用戶憑據傳播:連接到LiveCycle伺服器所需的連接詳細資訊在集中位置進行管理。
  • ServiceClientFactory服務:要啟動進程,客戶端應用程式可以訪問ServiceClientFactory實例。

從OSGi服務註冊表通過服務引用啟動

要從中啟動公開的服務,AEM請執行以下步驟:

  1. 確定主要依賴項。 在maven pom.xml檔案中將相依性添加到所需的客戶端jar。 至少要將相依性新增至adobe-livecycle-client和adobe-usermanager-clientJar。

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

    要啟動服務,請為服務添加相應的Maven依賴關係。 有關依賴項的清單,請參見Document Service List。 例如,對於「生成PDF」服務,添加以下相關性:

    <dependency>
      <groupId>com.adobe.livecycle</groupId>
      <artifactId>adobe-generatepdf-client</artifactId>
      <version>11.0.0</version>
    </dependency>
    
  2. 獲取服務參考。 獲取服務實例的句柄。 如果您正在編寫Java類,則可以使用Declative Services注釋。

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

    上述程式碼片段會啟動GeneratePdfServiceClient的createPDF API,將檔案轉換為PDF。 您可以使用下列代碼在JSP中執行類似的調用。 主要差異在於下列程式碼使用Sling ScriptHelper存取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
                );
    

通過ServiceClientFactory啟動

在某些情況下, ServiceClientFactory類是必需的。 例如,您需要ServiceClientFactory來呼叫進程。

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

@Reference
ServiceClientFactoryProvider scfProvider;

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

RunAs支援

LiveCycle中幾乎每個檔案服務都需要驗證。 您可以使用下列任一選項來啟動這些服務,而不需在程式碼中提供明確的憑證:

允許清單配置

LiveCycle用戶端SDK組態包含服務名稱的設定。 此配置是服務清單,調用邏輯將立即使用管理員憑據。 例如,如果將DirectoryManager服務(用戶管理API的一部分)添加到此清單中,則任何客戶端代碼都可以直接使用該服務,而調用層作為發送到LiveCycle伺服器的請求的一部分自動傳遞已配置憑據

RunAsManager

作為整合的一部分,提供了新的服務RunAsManager。 它可讓您以程式設計方式控制對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);

如果要傳遞不同的憑證,可以使用採用PasswordCredential實例的過載方法。

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

InvocationRequest屬性

如果調用進程或直接使用ServiceClientFactory類並建立InvocationRequest,則可以指定一個屬性以指示調用層應使用配置的憑據。

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

文檔服務清單

AdobeLiveCycle用戶端SDK API套件

提供下列服務:

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

AdobeLiveCycle用戶端SDK套件

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycleTaskManager客戶端包

提供下列服務:

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

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

AdobeLiveCycle Workflow客戶端包

提供下列服務:

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

Maven dependencies

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

Adobe LiveCycle PDF Generator客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycle應用程式管理器客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycle匯編器客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycle表單資料整合客戶端包

提供下列服務:

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

Maven dependencies

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

Adobe LiveCycle Forms客戶端包

提供下列服務:

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

Maven dependencies

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

Adobe LiveCycle Output客戶端包

提供下列服務:

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

Maven dependencies

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

Adobe LiveCycle Reader Extensions客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycleRights Manager客戶端包

提供下列服務:

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

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

AdobeLiveCycle簽名客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycleTruststore客戶端包

提供下列服務:

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

Maven dependencies

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

AdobeLiveCycle資料庫客戶端包

提供下列服務:

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

Maven dependencies

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

本頁內容

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now