本檔案中的範例和範例僅適用於JEE環境上的AEM Forms。
可以用寫程式方式驗證組合器服務使用的DDX文檔。 也就是說,使用組合器服務API,可以確定DDX文檔是否有效。 例如,如果您從以前的AEM Forms版本升級,並且希望確保DDX文檔有效,則可以使用組合器服務API來驗證它。
有關組合器服務的詳細資訊,請參閱AEM Forms的服務參考。
有關DDX文檔的詳細資訊,請參閱組合器服務和DDX引用。
要驗證DDX文檔,請執行以下任務:
包含項目檔案
在您的開發專案中加入必要的檔案。 如果您是使用Java建立客戶端應用程式,請包括必要的JAR檔案。 如果您使用Web服務,請確定您包含Proxy檔案。
必須將以下JAR檔案添加到項目的類路徑中:
如果AEM Forms部署在JBoss以外的受支援J2EE應用程式伺服器上,您必須將adobe-utilities.jar和jbossall-client.jar檔案取代為AEM Forms所部署之J2EE應用程式伺服器專屬的JAR檔案。
建立PDF組合器客戶端
在以寫程式方式執行組合器操作之前,必須建立組合器服務客戶端。
參考現有的DDX文檔
要驗證DDX文檔,必須參考現有DDX文檔。
設定運行時選項以驗證DDX文檔
驗證DDX文檔時,必須設定特定的運行時選項,這些選項指示組合器服務驗證DDX文檔,而不執行它。 此外,您還可以增加組合器服務寫入日誌檔案的資訊量。
執行驗證
建立組合器服務客戶端、引用DDX文檔並設定運行時選項後,可以調用invokeDDX
操作來驗證DDX文檔。 驗證DDX文檔時,可以傳遞null
作為映射參數(此參數通常儲存匯編器執行DDX文檔中指定的操作所需的PDF文檔)。
如果驗證失敗,則會引發異常,並且日誌檔案包含詳細資訊,說明為何DDX文檔無效,可從OperationException
實例獲取。 一旦通過基本XML解析和架構檢查,就會執行對DDX規範的驗證。 DDX文檔中的所有錯誤都在日誌中指定。
將驗證結果保存在日誌檔案中
組合器服務返回可寫入XML日誌檔案的驗證結果。 組合器服務寫入日誌檔案的詳細程度取決於您設定的運行時選項。
另請參閱
使用組合器服務API(Java)驗證DDX文檔:
包含專案檔案。
在Java項目的類路徑中包含客戶端JAR檔案,如adobe-assembler-client.jar。
建立PDF組合器客戶端。
ServiceClientFactory
對象。ServiceClientFactory
物件,以建立AssemblerServiceClient
物件。參考現有的DDX文檔。
java.io.FileInputStream
對象。java.io.FileInputStream
物件,以建立com.adobe.idp.Document
物件。設定運行時選項以驗證DDX文檔。
AssemblerOptionSpec
物件,以儲存執行時選項。AssemblerOptionSpec
對象的setValidateOnly方法並傳遞true
來驗證DDX文檔。AssemblerOptionSpec
對象的getLogLevel
方法並傳遞字串值來設定組合器服務寫入日誌檔案的資訊量,該資訊量滿足您的要求。 驗證DDX文檔時,需要將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以傳遞值FINE
或FINER
。執行驗證。
調用AssemblerServiceClient
對象的invokeDDX
方法並傳遞以下值:
com.adobe.idp.Document
對象。null
。com.adobe.livecycle.assembler.client.AssemblerOptionSpec
對象。invokeDDX
方法返回一個AssemblerResult
對象,該對象包含指定DDX文檔是否有效的資訊。
將驗證結果保存在日誌檔案中。
java.io.File
物件,並確定副檔名為.xml。AssemblerResult
對象的getJobLog
方法。 此方法會傳回包含驗證資訊的com.adobe.idp.Document
例項。com.adobe.idp.Document
對象的copyToFile
方法,將com.adobe.idp.Document
對象的內容複製到檔案。如果DDX文檔無效,則擲回OperationException
。 在catch陳述式中,可以調用OperationException
對象的getJobLog
方法。
另請參閱
快速入門(SOAP模式):使用Java API (SOAP模式)驗證DDX檔案
使用組合器服務API(Web服務)驗證DDX文檔:
包含專案檔案。
建立使用MTOM的Microsoft .NET項目。 確保使用以下WSDL定義:http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
。
用表單伺服器的IP地址替換localhost。
建立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身份驗證:
AssemblerServiceClient.ClientCredentials.UserName.UserName
。AssemblerServiceClient.ClientCredentials.UserName.Password
。HttpClientCredentialType.Basic
指派給欄位BasicHttpBindingSecurity.Transport.ClientCredentialType
。BasicHttpSecurityMode.TransportCredentialOnly
指派給欄位BasicHttpBindingSecurity.Security.Mode
。參考現有的DDX文檔。
BLOB
物件。 BLOB
對象用於儲存DDX文檔。System.IO.FileStream
對象,該字串值表示DDX文檔的檔案位置以及在中開啟檔案的模式。System.IO.FileStream
對象內容的位元組陣列。 通過獲取System.IO.FileStream
對象的Length
屬性,可以確定位元組陣列的大小。System.IO.FileStream
對象的Read
方法並傳遞要讀取的位元組陣列、啟動位置和流長度,以流資料填充位元組陣列。MTOM
物件指派包含位元組陣列內容的屬性,以填入BLOB
物件。設定運行時選項以驗證DDX文檔。
AssemblerOptionSpec
物件,以儲存執行時選項。AssemblerOptionSpec
對象的validateOnly
資料成員來驗證DDX文檔。AssemblerOptionSpec
對象的logLevel
資料成員,設定組合器服務寫入日誌檔案的資訊量。 方法驗證DDX文檔時,您希望將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以指定值FINE
或FINER
。 如需可設定的執行階段選項相關資訊,請參閱AEM Forms API參考中的AssemblerOptionSpec
類別參考。執行驗證。
調用AssemblerServiceClient
對象的invokeDDX
方法並傳遞以下值:
BLOB
對象。Map
對象的值null
。AssemblerOptionSpec
對象。invokeDDX
方法返回一個AssemblerResult
對象,該對象包含指定DDX文檔是否有效的資訊。
將驗證結果保存在日誌檔案中。
System.IO.FileStream
對象,該字串值表示日誌檔案的檔案位置以及在中開啟檔案的模式。 請確定副檔名為.xml。AssemblerResult
對象的jobLog
資料成員的值,建立儲存日誌資訊的BLOB
對象。BLOB
對象內容的位元組陣列。 獲取BLOB
對象的MTOM
欄位的值,填入位元組陣列。System.IO.FileStream
對象來建立System.IO.BinaryWriter
對象。System.IO.BinaryWriter
對象的Write
方法並傳遞位元組陣列,將位元組陣列的內容寫入PDF檔案。如果DDX文檔無效,則擲回OperationException
。 在catch語句中,可以獲取OperationException
對象的jobLog
成員的值。
另請參閱