本檔案中的範例和範例僅適用於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
作為映射參數(此參數通常儲存PDF文檔,組合器需要這些文檔執行在DDX文檔中指定的操作)。
如果驗證失敗,則會擲回例外,且記錄檔包含詳細資訊,說明為何DDX檔案無效,可從 OperationException
例項。 一旦通過基本XML解析和架構檢查,就會執行對DDX規範的驗證。 DDX文檔中的所有錯誤都在日誌中指定。
將驗證結果保存在日誌檔案中
組合器服務返回可寫入XML日誌檔案的驗證結果。 組合器服務寫入日誌檔案的詳細程度取決於您設定的運行時選項。
另請參閱
使用組合器服務API(Java)驗證DDX文檔:
包含專案檔案。
在Java項目的類路徑中包含客戶端JAR檔案,如adobe-assembler-client.jar。
建立PDF組合器客戶端。
ServiceClientFactory
包含連接屬性的對象。AssemblerServiceClient
對象,使用其建構子並傳遞 ServiceClientFactory
物件。參考現有的DDX文檔。
java.io.FileInputStream
表示DDX文檔的對象,方法是使用其建構子並傳遞指定DDX檔案位置的字串值。com.adobe.idp.Document
對象,使用其建構子並傳遞 java.io.FileInputStream
物件。設定運行時選項以驗證DDX文檔。
AssemblerOptionSpec
使用其建構子儲存執行時選項的物件。AssemblerOptionSpec
對象的setValidateOnly方法和傳遞 true
.AssemblerOptionSpec
物件 getLogLevel
方法和傳遞字串值符合您的需求。 驗證DDX文檔時,需要將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以傳遞值 FINE
或 FINER
.執行驗證。
叫用 AssemblerServiceClient
物件 invokeDDX
方法,並傳遞下列值:
com.adobe.idp.Document
表示DDX文檔的對象。null
用於通常儲存PDF檔案的java.io.Map物件。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驗證DDX檔案 (SOAP模式)
使用組合器服務API(Web服務)驗證DDX文檔:
包含專案檔案。
建立使用MTOM的Microsoft .NET專案。 確保使用以下WSDL定義: http://localhost:8080/soap/services/AssemblerService?WSDL&lc_version=9.0.1
.
用表單伺服器的IP地址替換localhost。
建立PDF組合器客戶端。
建立 AssemblerServiceClient
物件,使用其預設建構函式。
建立 AssemblerServiceClient.Endpoint.Address
物件,使用 System.ServiceModel.EndpointAddress
建構子。 將指定WSDL的字串值傳遞至AEM Forms服務(例如 http://localhost:8080/soap/services/AssemblerService?blob=mtom
)。 您不需要使用 lc_version
屬性。 建立服務參考時,會使用此屬性。
建立 System.ServiceModel.BasicHttpBinding
物件,方法是取得 AssemblerServiceClient.Endpoint.Binding
欄位。 將傳回值轉換為 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
方法,並傳遞位元組陣列、起始位置及流長度以讀取。BLOB
對象,通過賦值 MTOM
屬性(包含位元組陣列的內容)。設定運行時選項以驗證DDX文檔。
AssemblerOptionSpec
使用其建構子儲存執行時選項的物件。AssemblerOptionSpec
物件 validateOnly
資料成員。AssemblerOptionSpec
物件 logLevel
資料成員。 方法驗證DDX文檔時,您希望將更多資訊寫入日誌檔案,以幫助驗證過程。 因此,您可以指定值 FINE
或 FINER
. 如需可設定的執行階段選項相關資訊,請參閱 AssemblerOptionSpec
類引用 AEM Forms API參考.執行驗證。
叫用 AssemblerServiceClient
物件 invokeDDX
方法,並傳遞下列值:
BLOB
表示DDX文檔的對象。null
針對 Map
通常儲存PDF文檔的對象。AssemblerOptionSpec
指定運行時選項的對象。此 invokeDDX
方法傳回 AssemblerResult
包含指定DDX文檔是否有效的資訊的對象。
將驗證結果保存在日誌檔案中。
System.IO.FileStream
對象,方法是調用其建構子,並傳遞一個字串值,該字串值表示日誌檔案的檔案位置,以及在中開啟檔案的模式。 請確定副檔名為.xml。BLOB
透過取得 AssemblerResult
物件 jobLog
資料成員。BLOB
物件。 取得 BLOB
物件 MTOM
欄位。System.IO.BinaryWriter
對象,調用其建構子並傳遞 System.IO.FileStream
物件。System.IO.BinaryWriter
物件 Write
方法,並傳遞位元組陣列。如果DDX檔案無效,則 OperationException
被擲回。 在catch陳述式中,您可以取得 OperationException
物件 jobLog
成員。
另請參閱