本檔案中的範例和範例僅適用於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檔案時,您必須設定特定的執行階段選項,以指示Assembler服務驗證DDX檔案,而不是執行。 此外,您也可以增加Assembler服務寫入記錄檔的資訊量。
執行驗證
建立Assembler服務使用者端、參考DDX檔案並設定執行階段選項之後,您可以叫用 invokeDDX
驗證DDX檔案的作業。 驗證DDX檔案時,您可以傳遞 null
作為對應引數(此引數通常會儲存Assembler執行DDX檔案中指定之作業所需的PDF檔案)。
如果驗證失敗,系統會擲回例外狀況,而記錄檔會包含詳細說明,說明為何DDX檔案無效,可從取得 OperationException
執行個體。 一旦通過基本的XML剖析和結構描述檢查,就會根據DDX規格執行驗證。 DDX檔案中的所有錯誤都在記錄中指定。
將驗證結果儲存在記錄檔中
組合器服務會傳回您可以寫入XML記錄檔的驗證結果。 Assembler服務寫入記錄檔的詳細資訊量,取決於您設定的執行階段選項。
另請參閱
使用組合器服務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
java.io.Map物件(通常儲存PDF檔案)。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
.
以Forms伺服器的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
成員。
另請參閱