驗證DDX文檔

本文中的範例和範例僅適用於AEM Forms的JEE環境。

可以通過寫程式方式驗證Assembler服務使用的DDX文檔。 也就是說,使用Assembler服務API,可以確定DDX文檔是否有效。 例如,如果您從先前的AEM Forms版本升級,而您想要確保DDX文檔有效,則可以使用Assembler服務API來驗證它。

注意

有關Assembler服務的詳細資訊,請參見AEM Forms的服務參考

注意

有關DDX文檔的詳細資訊,請參閱匯編器服務和DDX參考

步驟摘要

要驗證DDX文檔,請執行以下任務:

  1. 包含專案檔案。
  2. 建立Assembler客戶端。
  3. 參考現有的DDX檔案。
  4. 設定執行時期選項以驗證DDX檔案。
  5. 執行驗證。
  6. 將驗證結果保存到日誌檔案中。

包含專案檔案

在您的開發專案中加入必要的檔案。 如果要使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用web services,請確定您包含proxy檔案。

必須將下列JAR檔案添加到項目的類路徑中:

  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • adobe-assembler-client.jar
  • adobe-utilities.jar(如果AEM Forms部署在JBoss上,則為必要)
  • jbossall-client.jar(如果AEM Forms部署在JBoss上,則為必需)

如果AEM Forms部署在JBoss以外的受支援J2EE應用程式伺服器上,則必須將adobe-utilities.jar和jbossall-client.jar檔案替換為AEM Forms部署在的J2EE應用程式伺服器專用的JAR檔案。

建立PDF匯寫程式式用戶端

在以寫程式方式執行匯編器操作之前,必須建立匯編器服務客戶端。

參考現有的DDX檔案

要驗證DDX文檔,必須引用現有DDX文檔。

設定執行時期選項以驗證DDX檔案

驗證DDX文檔時,必須設定特定的運行時選項,這些選項指示Assembler服務驗證DDX文檔,而不是執行它。 此外,還可以增加Assembler服務寫入日誌檔案的資訊量。

執行驗證

建立Assembler服務客戶端、引用DDX文檔並設定運行時選項後,可以調用invokeDDX操作來驗證DDX文檔。 驗證DDX文檔時,可以將null作為映射參數傳遞(此參數通常儲存匯編程式要求執行DDX文檔中指定的操作的PDF文檔)。

如果驗證失敗,則會拋出異常,而且日誌檔案包含詳細資訊,說明DDX文檔無效的原因,可從OperationException實例獲取。 一旦通過基本的XML解析和模式檢查,就會執行對DDX規範的驗證。 DDX文檔中的所有錯誤都在日誌中指定。

將驗證結果保存到日誌檔案中

Assembler服務返回可寫入XML日誌檔案的驗證結果。 匯編器服務寫入日誌檔案的詳細程度取決於您設定的運行時選項。

另請參閱

使用Java API驗證DDX檔案

使用web service API驗證DDX檔案

包含AEM FormsJava庫檔案

設定連接屬性

以程式設計方式組合PDF檔案

使用Java API驗證DDX檔案

使用Assembler Service API(Java)驗證DDX檔案:

  1. 包含專案檔案。

    在Java專案的類別路徑中包含用戶端JAR檔案,例如adobe-assembler-client.jar。

  2. 建立PDF匯寫程式式用戶端。

    • 建立包含連接屬性的ServiceClientFactory對象。
    • 使用其建構子並傳遞ServiceClientFactory對象,建立AssemblerServiceClient對象。
  3. 參考現有的DDX檔案。

    • 使用DDX文檔的建構子並傳遞指定DDX檔案位置的字串值,建立代表DDX文檔的java.io.FileInputStream對象。
    • 使用其建構子並傳遞java.io.FileInputStream對象,建立com.adobe.idp.Document對象。
  4. 設定執行時期選項以驗證DDX檔案。

    • 使用其建構子建立一個AssemblerOptionSpec對象,該對象儲存運行時選項。
    • 設定執行時選項,指示Assembler服務調用AssemblerOptionSpec物件的setValidateOnly方法並傳遞true來驗證DDX檔案。
    • 調用AssemblerOptionSpec物件的getLogLevel方法,並傳遞符合您需求的字串值,以設定Assembler服務寫入記錄檔的資訊量。 驗證DDX文檔時,需要將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以傳遞值FINEFINER
  5. 執行驗證。

    叫用AssemblerServiceClient物件的invokeDDX方法並傳遞下列值:

    • 代表DDX文檔的com.adobe.idp.Document對象。
    • 通常儲存PDF檔案的java.io.Map物件的null值。
    • 指定運行時選項的com.adobe.livecycle.assembler.client.AssemblerOptionSpec對象。

    invokeDDX方法返回AssemblerResult對象,該對象包含指定DDX文檔是否有效的資訊。

  6. 將驗證結果保存到日誌檔案中。

    • 建立java.io.File物件,並確定副檔名為。xml。
    • 叫用AssemblerResult物件的getJobLog方法。 此方法會傳回包含驗證資訊的com.adobe.idp.Document例項。
    • 調用com.adobe.idp.Document物件的copyToFile方法,將com.adobe.idp.Document物件的內容複製至檔案。
    注意

    如果DDX文檔無效,則拋出OperationException。 在catch語句中,可以調用OperationException對象的getJobLog方法。

另請參閱

驗證DDX文檔

快速入門(SOAP模式):使用Java API (SOAP模式)驗證DDX檔案

包含AEM FormsJava庫檔案

設定連接屬性

使用web service API驗證DDX檔案

使用Assembler Service API(web service)驗證DDX文檔:

  1. 包含專案檔案。

    建立使用MTOM的Microsoft .NET專案。 請確定您使用下列WSDL定義:http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1

    注意

    將localhost替換為表單伺服器的IP地址。

  2. 建立PDF匯寫程式式用戶端。

    • 使用其預設建構子建立AssemblerServiceClient對象。

    • 使用System.ServiceModel.EndpointAddress建構函式建立AssemblerServiceClient.Endpoint.Address物件。 將指定WSDL的字串值傳遞給AEM Forms服務(例如http://localhost:8080/soap/services/AssemblerService?blob=mtom)。 您不需要使用lc_version屬性。 建立服務參考時,將使用此屬性。

    • 獲取AssemblerServiceClient.Endpoint.Binding欄位的值,建立System.ServiceModel.BasicHttpBinding對象。 將返回值轉換為BasicHttpBinding

    • System.ServiceModel.BasicHttpBinding物件的MessageEncoding欄位設為WSMessageEncoding.Mtom。 此值可確保使用MTOM。

    • 執行下列工作以啟用基本HTTP驗證:

      • 將表AEM單用戶名分配給欄位AssemblerServiceClient.ClientCredentials.UserName.UserName
      • 將相應的口令值分配給欄位AssemblerServiceClient.ClientCredentials.UserName.Password
      • 將常數值HttpClientCredentialType.Basic分配給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
      • 將常數值BasicHttpSecurityMode.TransportCredentialOnly分配給欄位BasicHttpBindingSecurity.Security.Mode
  3. 參考現有的DDX檔案。

    • 使用其建構子建立BLOB對象。 BLOB物件用來儲存DDX檔案。
    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示DDX文檔的檔案位置和開啟檔案的模式。
    • 建立儲存System.IO.FileStream對象內容的位元組陣列。 您可以取得System.IO.FileStream物件的Length屬性,以判斷位元組陣列的大小。
    • 調用System.IO.FileStream物件的Read方法,並傳遞要讀取的位元組陣列、開始位置和串流長度,以串流資料填入位元組陣列。
    • 通過為MTOM對象的屬性指定位元組陣列的內容來填充BLOB對象。
  4. 設定執行時期選項以驗證DDX檔案。

    • 使用其建構子建立一個AssemblerOptionSpec對象,該對象儲存運行時選項。
    • 設定執行時選項,指示Assembler服務將值true指派給AssemblerOptionSpec物件的validateOnly資料成員,以驗證DDX檔案。
    • 通過為AssemblerOptionSpec對象的logLevel資料成員分配字串值,設定Assembler服務寫入日誌檔案的資訊量。 方法驗證DDX文檔時,需要將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以指定值FINEFINER。 有關可設定的運行時選項的資訊,請參閱AEM FormsAPI參考中的AssemblerOptionSpec類參考。
  5. 執行驗證。

    叫用AssemblerServiceClient物件的invokeDDX方法並傳遞下列值:

    • 代表DDX文檔的BLOB對象。
    • 通常儲存PDF文檔的Map對象的null值。
    • 指定運行時選項的AssemblerOptionSpec對象。

    invokeDDX方法返回AssemblerResult對象,該對象包含指定DDX文檔是否有效的資訊。

  6. 將驗證結果保存到日誌檔案中。

    • 通過調用System.IO.FileStream對象的建構子並傳遞一個字串值,該字串值表示日誌檔案的檔案位置和開啟檔案的模式。 請確定副檔名為。xml。
    • 通過獲取AssemblerResult對象的jobLog資料成員的值,建立儲存日誌資訊的BLOB對象。
    • 建立儲存BLOB對象內容的位元組陣列。 取得BLOB物件的MTOM欄位值,以填入位元組陣列。
    • 調用System.IO.BinaryWriter對象的建構子並傳遞System.IO.FileStream對象,以建立對象。
    • 調用System.IO.BinaryWriter物件的Write方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。
    注意

    如果DDX文檔無效,則拋出OperationException。 在catch語句中,可以獲取OperationException對象jobLog成員的值。

另請參閱

驗證DDX文檔

使用MTOM叫用AEM Forms

本頁內容

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