步驟摘要

若要將EJB端點新增至服務,請執行下列工作:

  1. 包含專案檔案。
  2. 建立EndpointRegistry Client物件。
  3. 設定EJB端點屬性。
  4. 建立EJB端點。
  5. 啟用端點。

包含專案檔

在您的開發專案中包含必要的檔案。 必須將下列JAR檔案新增至專案的類別路徑:

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

如需關於這些JAR檔案位置的資訊,請參閱包含AEM Forms Java程式庫檔案

建立EndpointRegistry使用者端物件

您必須先建立EndpointRegistryClient物件,才能以程式設計方式新增EJB端點。

設定EJB端點屬性

若要建立服務的EJB端點,請指定下列值:

  • 聯結器識別碼:指定要建立的端點型別。 若要建立EJB端點,請指定EJB
  • 描述:指定端點描述。
  • 名稱:指定端點的名稱。
  • 服務識別碼:指定端點所屬的服務。
  • 作業名稱:指定使用端點叫用的作業名稱。 建立EJB端點時,請指定萬用字元( *)。 不過,如果您要指定特定作業,而不是叫用所有服務作業,請指定作業的名稱,而不是使用萬用字元( *)。

建立EJB端點

設定EJB端點屬性之後,即可建立服務的EJB端點。

啟用端點

建立端點後,您必須啟用它。 啟用端點後,便可用來叫用服務。 啟用端點後,即可在管理主控台中檢視它。

另請參閱

使用Java API新增EJB端點

包含AEM Forms Java程式庫檔案

設定連線屬性

使用Java API新增EJB端點

使用Java API新增EJB端點:

  1. 包含專案檔案。

    在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-livecycle-client.jar。 (

  2. 建立EndpointRegistry使用者端物件。

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞EndpointRegistryClient物件來建立ServiceClientFactory物件。
  3. 設定EJB端點屬性。

    • 使用物件的建構函式建立CreateEndpointInfo物件。
    • 叫用CreateEndpointInfo物件的setConnectorId方法並傳遞字串值EJB,以指定聯結器識別碼值。
    • 透過叫用CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。
    • 透過叫用CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。
    • 透過叫用CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。
    • 指定叫用CreateEndpointInfo物件的setOperationName方法所叫用的作業,並傳遞指定作業名稱的字串值。 對於SOAP和EJB端點,請指定萬用字元( *),這表示所有作業。
  4. 建立EJB端點。

    透過叫用EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表新EJB端點的Endpoint物件。

  5. 啟用端點。

    啟用端點,方法是叫用EndpointRegistryClient物件的enable方法並傳遞Endpoint方法傳回的createEndpoint物件。

新增SOAP端點

您可以使用SOAP API,以程式設計方式將AEM Forms端點新增至服務。 透過新增SOAP端點,您可以讓使用者端應用程式使用SOAP模式叫用服務。 也就是說,在設定呼叫AEM Forms所需的連線屬性時,您可以選取SOAP模式。

注意
您無法使用網站服務新增SOAP端點。
注意
一般而言,SOAP端點會依預設新增至服務。不過,SOAP端點可以新增至以程式設計方式部署的流程,或是在SOAP端點移除後而必須重新新增的流程。

步驟摘要

若要將SOAP端點新增至服務,請執行以下工作:

  1. 包含專案檔案。
  2. 建立EndpointRegistryClient物件。
  3. 設定SOAP端點屬性。
  4. 建立SOAP端點。
  5. 啟用端點。

包含專案檔

在您的開發專案中包含必要的檔案。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。

必須將下列JAR檔案新增至專案的類別路徑:

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

需要這些JAR檔案才能建立SOAP端點。 不過,如果您使用SOAP端點來叫用服務,則需要額外的JAR檔案。 如需AEM Forms JAR檔案的相關資訊,請參閱包含AEM Forms Java程式庫檔案

建立EndpointRegistry使用者端物件

若要以程式設計方式將SOAP端點新增至服務,您必須建立EndpointRegistryClient物件。

設定SOAP端點屬性

若要將SOAP端點新增至服務,請指定下列值:

  • 聯結器識別碼值:指定要建立的端點型別。 若要建立SOAP端點,請指定SOAP
  • 描述:指定端點描述。
  • 名稱:指定端點名稱。
  • 服務識別碼值:指定端點所屬的服務。
  • 作業名稱:指定使用端點叫用的作業名稱。 建立SOAP端點時,請指定萬用字元( *)。 不過,如果您要指定特定作業,而不是叫用所有服務作業,請指定作業的名稱,而不是使用萬用字元( *)。

建立SOAP端點

設定SOAP端點屬性後,即可建立SOAP端點。

啟用端點

建立端點後,您必須啟用它。 端點啟用時,可用來叫用服務。 啟用端點後,即可在管理主控台中檢視端點。

另請參閱

使用Java API新增SOAP端點

包含AEM Forms Java程式庫檔案

設定連線屬性

使用Java API新增SOAP端點

使用Java API新增SOAP端點至服務:

  1. 包含專案檔案。

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

  2. 建立EndpointRegistry使用者端物件。

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞EndpointRegistryClient物件來建立ServiceClientFactory物件。
  3. 設定SOAP端點屬性。

    • 使用物件的建構函式建立CreateEndpointInfo物件。
    • 叫用CreateEndpointInfo物件的setConnectorId方法並傳遞字串值SOAP,以指定聯結器識別碼值。
    • 透過叫用CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。
    • 透過叫用CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。
    • 透過叫用CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。
    • 指定叫用CreateEndpointInfo物件的setOperationName方法,並傳遞指定作業名稱的字串值,以叫用的作業。 對於SOAP和EJB端點,請指定萬用字元( *),這表示所有作業。
  4. 建立SOAP端點。

    透過叫用EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表新SOAP端點的Endpoint物件。

  5. 啟用端點。

    透過叫用EndpointRegistryClient物件的enable方法啟用端點,並傳遞Endpoint方法傳回的createEndpoint物件。

新增Watched資料夾端點

您可以使用AEM Forms Java API,以程式設計方式將Watched資料夾端點新增至服務。 透過新增Watched資料夾端點,您可以讓使用者將檔案(例如PDF檔案)放在資料夾中。 將檔案放在資料夾中時,會叫用已設定的服務並操作檔案。 服務執行指定的作業後,會將修改的檔案儲存在指定的輸出資料夾中。 觀察資料夾已設定為以固定速率間隔或以cron排程掃描,例如每個星期一、星期三和星期五中午。

為了以程式設計方式將Watched資料夾端點新增至服務,請考慮下列名為​ EncryptDocument ​的短期程式。 (請參閱瞭解AEM Forms程式。)

aw_aw_encryptdocumentprocess

此程式接受不安全的PDF檔案作為輸入值,然後將不安全的PDF檔案傳遞至加密服務的EncryptPDFUsingPassword作業。 PDF檔案已使用密碼加密,而密碼加密的PDF檔案是此程式的輸出值。 輸入值的名稱(不安全的PDF檔案)為InDoc,資料型別為com.adobe.idp.Document。 輸出值(以密碼加密的PDF檔案)的名稱為SecuredDoc,資料型別為com.adobe.idp.Document

注意
您無法使用Web服務新增Watched資料夾端點。

步驟摘要

若要將Watched資料夾端點新增至服務,請執行下列工作:

  1. 包含專案檔案。
  2. 建立EndpointRegistryClient物件。
  3. 設定Watched資料夾端點屬性。
  4. 指定設定值。
  5. 定義輸入引數值。
  6. 定義輸出引數值。
  7. 建立Watched資料夾端點。
  8. 啟用端點。

包含專案檔

在您的開發專案中包含必要的檔案。 如果您使用Java建立使用者端應用程式,請包含必要的JAR檔案。 如果您使用Web服務,請務必包含Proxy檔案。

必須將下列JAR檔案新增至專案的類別路徑:

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

如需關於這些JAR檔案位置的資訊,請參閱包含AEM Forms Java程式庫檔案

建立EndpointRegistry使用者端物件

若要以程式設計方式新增「監看資料夾」端點,您必須建立EndpointRegistryClient物件。

設定Watched資料夾端點屬性

若要為服務建立Watched資料夾端點,請指定下列值:

  • 聯結器識別碼:指定已建立的端點型別。 若要建立Watched資料夾端點,請指定WatchedFolder
  • 描述:指定端點的描述。
  • 名稱:指定端點的名稱。
  • 服務識別碼:指定端點所屬的服務。 例如,若要將Watched資料夾端點新增至此區段中引進的處理(使用Workbench啟動時處理會變成服務),請指定EncryptDocument
  • 作業名稱:指定使用端點叫用的作業名稱。 一般而言,針對源自於Workbench中建立之處理序的服務,建立Watched資料夾端點時,作業名稱為invoke

指定組態值

以程式設計方式將Watched資料夾端點新增至服務時,請指定Watched資料夾端點的設定值。 如果使用管理主控台新增Watched資料夾端點,則由管理員指定這些設定值。

下列清單指定以程式設計方式將Watched資料夾端點新增至服務時所設定的設定值:

  • url:指定watched資料夾位置。 在叢集環境中,此值必須指向可從叢集中的每台電腦存取的共用網路資料夾。
  • 非同步:將呼叫型別識別為非同步或同步。 暫時和同步處理程式只能同步叫用。 預設值為true。 建議使用非同步。
  • cronExpression: Quartz用來排程輪詢輸入目錄。
  • purgeDuration:這是必要屬性。 當結果資料夾中的檔案和資料夾早於此值時,就會清除這些檔案和資料夾。 此值以天為單位測量。 此屬性有助於確保結果資料夾不會填滿。 值為–1天表示絕不刪除結果資料夾。 預設值為 -1。
  • repeatInterval:掃描Watched資料夾以進行輸入的間隔(秒)。 除非啟用節流功能,否則此值應超過處理平均作業的時間;否則,系統可能會變得超載。 預設值為 5。
  • repeatCount: Watched資料夾掃描資料夾或目錄的次數。 值–1表示無限掃描。 預設值為 -1。
  • throttleOn:限制可在任何指定時間處理的Watched資料夾工作數目。 最大作業數由batchSize值決定。
  • userName:從Watched資料夾叫用目標服務時使用的使用者名稱。 此值為必填。 預設值為SuperAdmin。
  • domainName:使用者的網域。 此值為必填。 預設值為DefaultDom。
  • batchSize:每次掃描要擷取的檔案或資料夾數目。 使用此值可防止系統過載;一次掃描太多檔案可能會導致當機。 預設值為 2。
  • waitTime:建立資料夾或檔案後,掃描資料夾或檔案前的等待時間(以毫秒為單位)。 例如,如果等待時間為36,000,000毫秒(一小時),且檔案是在一分鐘前建立的,則系統會在59分鐘或更長時間後擷取此檔案。 此屬性對於確保檔案或資料夾完全複製到輸入資料夾非常有用。 例如,如果您有大型檔案要處理,且檔案下載需要10分鐘,請將等待時間設為10*60*1000毫秒。 此設定可防止watched資料夾在等待十分鐘後掃描檔案。 預設值為 0。
  • excludeFilePattern: watched資料夾用來判斷要掃描和擷取哪些檔案和資料夾的模式。 任何具有此模式的檔案或資料夾都不會掃描以進行處理。 當輸入是包含多個檔案的資料夾時,此設定非常有用。 資料夾的內容可以複製到一個資料夾中,該資料夾的名稱將由watched資料夾擷取。 此步驟可防止watched資料夾在資料夾完全複製到輸入資料夾之前擷取資料夾進行處理。 例如,如果excludeFilePattern值為data*,則不會擷取符合data*的所有檔案和資料夾。 這包括名為data1data2等等的檔案和資料夾。 此外,模式可附加萬用字元模式,以指定檔案模式。 Watched資料夾會修改規則運算式,以支援*.**.pdf等萬用字元模式。 規則運算式不支援這些萬用字元模式。
  • includeFilePattern: watched資料夾用來判斷要掃描和擷取哪些資料夾和檔案的模式。 例如,如果此值為*,則會擷取符合input*的所有檔案和資料夾。 這包括名為input1input2等等的檔案和資料夾。 預設值為*。 此值表示所有檔案和資料夾。 此外,模式可附加萬用字元模式,以指定檔案模式。 Watched資料夾會修改規則運算式,以支援*.**.pdf等萬用字元模式。 規則運算式不支援這些萬用字元模式。 此值為必填。
  • resultFolderName:儲儲存存結果的資料夾。 此位置可以是絕對或相對目錄路徑。 如果結果未出現在此資料夾中,請檢查失敗資料夾。 唯讀檔案不會處理,且會儲存在失敗資料夾中。 預設值為result/%Y/%M/%D/。 這是watched資料夾內的結果資料夾。
  • preserveFolderName:在成功掃描和擷取之後,儲存檔案的位置。 此位置可以是絕對、相對或Null目錄路徑。 預設值為 preserve/%Y/%M/%D/
  • failureFolderName:儲存失敗檔案的資料夾。 此位置永遠是相對於watched資料夾。 唯讀檔案不會處理,且會儲存在失敗資料夾中。 預設值為 failure/%Y/%M/%D/
  • preserveOnFailure:如果服務執行作業失敗,則保留輸入檔案。 預設值為true。
  • overwriteDuplicateFilename:設定為true時,會覆寫結果資料夾和保留資料夾中的檔案。 設定為false時,名稱會使用具有數值索引尾碼的檔案和資料夾。 預設值為false。

定義輸入引數值

建立Watched資料夾端點時,您必須定義輸入引數值。 也就是說,您必須說明傳遞至watched資料夾所叫用之作業的輸入值。 例如,請考量本主題中介紹的程式。 它有一個名為InDoc的輸入值,其資料型別為com.adobe.idp.Document。 當為此處理序建立Watched資料夾端點時(在處理序啟動後,它會變成服務),您必須定義輸入引數值。

若要定義Watched資料夾端點所需的輸入引數值,請指定下列值:

輸入引數名稱:輸入引數的名稱。 在Workbench中為處理指定輸入值的名稱。 如果輸入值屬於服務作業(不是在Workbench中建立的處理序的服務),則在component.xml檔案中指定輸入名稱。 例如,此區段中引進之處理序的輸入引數名稱是InDoc

對應型別:用來設定呼叫服務作業所需的輸入值。 對應型別有兩種:

  • Literal: Watched資料夾端點使用在顯示的欄位中輸入的值。 支援所有基本Java型別。 例如,如果API使用字串、long、int和Boolean等輸入,則字串會轉換為正確型別並叫用服務。
  • Variable:輸入的值是watched資料夾用來挑選輸入的檔案模式。 例如,如果您為對應型別選取「變數」,而輸入檔案必須是PDF檔案,則可以指定*.pdf作為對應值。

對應值:指定對應型別的值。 例如,如果您選取Variable對應型別,則可以指定*.pdf做為檔案模式。

資料型別:指定輸入值的資料型別。 例如,此區段中引進之程式之輸入值的資料型別為com.adobe.idp.Document

定義輸出引數值

建立Watched資料夾端點時,您必須定義輸出引數值。 也就是說,您必須說明由Watched資料夾端點叫用的服務所傳回的輸出值。 例如,請考量本主題中介紹的程式。 它有一個名為SecuredDoc的輸出值,其資料型別為com.adobe.idp.Document。 當為此處理序建立Watched資料夾端點時(在處理序啟動後,它會變成服務),您必須定義輸出引數值。

若要定義Watched資料夾端點所需的輸出引數值,請指定下列值:

輸出引數名稱:輸出引數的名稱。 在Workbench中指定處理輸出值的名稱。 如果輸出值屬於服務作業(不是在Workbench中建立的處理作業)時,會在component.xml檔案中指定輸出名稱。 例如,此區段中引進之處理序的輸出引數名稱是SecuredDoc

對應型別:用來設定服務和操作的輸出。 下列選項可供使用:

  • 如果服務傳回單一物件(單一檔案),則模式為%F.pdf,而來源目的地為sourcefilename.pdf。 例如,本節介紹的程式會傳回單一檔案。 因此,對應型別可以定義為%F.pdf%F表示使用指定的檔案名稱)。 模式%E指定輸入檔案的副檔名。
  • 如果服務傳回清單,則模式為Result\%F\,來源目的地為Result\sourcefilename\source1 (輸出1)和Result\sourcefilename\source2 (輸出2)。
  • 如果服務傳回對應,則模式為Result\%F\,來源目的地為Result\sourcefilename\file1和Result\sourcefilename\file2。 如果對應有多個物件,則模式為Result\%F.pdf,而來源目的地為Result\sourcefilename1.pdf (輸出1)、Result\sourcefilenam2.pdf (輸出2)等等。

資料型別:指定傳回值的資料型別。 例如,此區段中引進之處理序的傳回值資料型別為com.adobe.idp.Document

建立Watched資料夾端點

在您設定端點的屬性、組態值以及定義輸入和輸出引數值之後,您必須建立Watched資料夾端點。

啟用端點

建立Watched資料夾端點之後,您必須啟用它。 端點啟用時,可用來叫用服務。 啟用端點後,即可在管理主控台中檢視它。

另請參閱

使用Java API新增Watched資料夾端點

包含AEM Forms Java程式庫檔案

設定連線屬性

使用Java API新增Watched資料夾端點

使用AEM Forms Java API新增Watched資料夾端點:

  1. 包含專案檔案。

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

  2. 建立EndpointRegistry使用者端物件。

    • 建立包含連線屬性的ServiceClientFactory物件。
    • 使用它的建構函式並傳遞EndpointRegistryClient物件來建立ServiceClientFactory物件。
  3. 設定Watched資料夾端點屬性。

    • 使用物件的建構函式建立CreateEndpointInfo物件。
    • 叫用CreateEndpointInfo物件的setConnectorId方法並傳遞字串值WatchedFolder,以指定聯結器識別碼值。
    • 透過叫用CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。
    • 透過叫用CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。
    • 透過叫用CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。
    • 指定叫用CreateEndpointInfo物件的setOperationName方法,並傳遞指定作業名稱的字串值,以叫用的作業。 通常,在為源自於Workbench中建立的程式之服務建立Watched資料夾端點時,會叫用操作的名稱。
  4. 指定設定值。

    對於要為Watched資料夾端點設定的每個設定值,您必須叫用CreateEndpointInfo物件的setConfigParameterAsText方法。 例如,若要設定url組態值,請叫用CreateEndpointInfo物件的setConfigParameterAsText方法,並傳遞下列字串值:

    • 字串值,指定組態值的名稱。 設定url組態值時,請指定url
    • 字串值,指定設定值的值。 設定url設定值時,請指定watched資料夾位置。
    注意
    若要檢視為EncryptDocument服務設定的所有設定值,請參閱位於QuickStart:使用Java API新增Watched資料夾端點的Java程式碼範例。
  5. 定義輸入引數值。

    透過叫用CreateEndpointInfo物件的setInputParameterMapping方法定義輸入引數值,並傳遞下列值:

    • 字串值,指定輸入引數的名稱。 例如,EncryptDocument服務的輸入引數名稱是InDoc
    • 字串值,指定輸入引數的資料型別。 例如,InDoc輸入引數的資料型別是com.adobe.idp.Document
    • 字串值,指定對應型別。 例如,您可以指定variable
    • 字串值,指定對應型別值。 例如,您可以指定*.pdf作為檔案模式。
    注意
    叫用每個要定義的輸入引數值的setInputParameterMapping方法。 由於EncryptDocument程式只有一個輸入引數,因此您需要叫用此方法一次。
  6. 定義輸出引數值。

    透過叫用CreateEndpointInfo物件的setOutputParameterMapping方法定義輸出引數值,並傳遞下列值:

    • 字串值,指定輸出引數的名稱。 例如,EncryptDocument服務的輸出引數名稱是SecuredDoc
    • 字串值,指定輸出引數的資料型別。 例如,SecuredDoc輸出引數的資料型別為com.adobe.idp.Document
    • 字串值,指定對應型別。 例如,您可以指定%F.pdf
  7. 建立Watched資料夾端點。

    透過叫用EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表Watched資料夾端點的Endpoint物件。

  8. 啟用端點。

    啟用端點,方法是叫用EndpointRegistryClient物件的enable方法,並傳遞Endpoint方法傳回的createEndpoint物件。

Watched資料夾組態值常數檔案

QuickStart:使用Java API新增Watched資料夾端點,使用必須是Java專案一部分的常數檔案來編譯快速入門。 此常數檔案代表新增Watched資料夾端點時必須設定的組態值。 下列Java程式碼代表常數檔案。

 /**
     * This class contains constants that can be used when setting Watched Folder
     * configuration values
     */

 public final class WatchedFolderEndpointConfigConstants {

         public static final String PROPERTY_FILEPROVIDER_URL = "url";
         public static final String PROPERTY_PROPERTY_ASYNCHRONOUS = "asynchronous";
         public static final String PROPERTY_CRON_EXPRESSION = "cronExpression";
         public static final String PROPERTY_PURGE_DURATION = "purgeDuration";
         public static final String PROPERTY_REPEAT_INTERVAL = "repeatInterval";
         public static final String PROPERTY_REPEAT_COUNT = "repeatCount";
         public static final String PROPERTY_THROTTLE = "throttleOn";
         public static final String PROPERTY_USERNAMER = "userName";
         public static final String PROPERTY_DOMAINNAME = "domainName";
         public static final String PROPERTY_FILEPROVIDER_BATCH_SIZE = "batchSize";
         public static final String PROPERTY_FILEPROVIDER_WAIT_TIME = "waitTime";
         public static final String PROPERTY_EXCLUDE_FILE_PATTERN = "excludeFilePattern";
         public static final String PROPERTY_INCLUDE_FILE_PATTERN = "excludeFilePattern";
         public static final String PROPERTY_FILEPROVIDER_RESULT_FOLDER_NAME =  "resultFolderName";
         public static final String PROPERTY_FILEPROVIDER_PRESERVE_FOLDER_NAME = "preserveFolderName";
         public static final String PROPERTY_FILEPROVIDER_FAILURE_FOLDER_NAME = "failureFolderName";
         public static final String PROPERTY_FILEPROVIDER_PRESERVE_ON_FAILURE = "preserveOnFailure";
         public static final String PROPERTY_FILEPROVIDER_OVERWRITE_DUPLICATE_FILENAME = "overwriteDuplicateFilename";
        }