步驟摘要
若要將EJB端點新增至服務,請執行下列工作:
- 包含專案檔案。
- 建立
EndpointRegistry Client物件。 - 設定EJB端點屬性。
- 建立EJB端點。
- 啟用端點。
包含專案檔
在您的開發專案中包含必要的檔案。 必須將下列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端點
使用Java API新增EJB端點:
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-livecycle-client.jar。 (
-
建立EndpointRegistry使用者端物件。
- 建立包含連線屬性的
ServiceClientFactory物件。 - 使用它的建構函式並傳遞
EndpointRegistryClient物件來建立ServiceClientFactory物件。
- 建立包含連線屬性的
-
設定EJB端點屬性。
- 使用物件的建構函式建立
CreateEndpointInfo物件。 - 叫用
CreateEndpointInfo物件的setConnectorId方法並傳遞字串值EJB,以指定聯結器識別碼值。 - 透過叫用
CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。 - 透過叫用
CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。 - 透過叫用
CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。 - 指定叫用
CreateEndpointInfo物件的setOperationName方法所叫用的作業,並傳遞指定作業名稱的字串值。 對於SOAP和EJB端點,請指定萬用字元(*),這表示所有作業。
- 使用物件的建構函式建立
-
建立EJB端點。
透過叫用
EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表新EJB端點的Endpoint物件。 -
啟用端點。
啟用端點,方法是叫用
EndpointRegistryClient物件的enable方法並傳遞Endpoint方法傳回的createEndpoint物件。
新增SOAP端點
您可以使用SOAP API,以程式設計方式將AEM Forms端點新增至服務。 透過新增SOAP端點,您可以讓使用者端應用程式使用SOAP模式叫用服務。 也就是說,在設定呼叫AEM Forms所需的連線屬性時,您可以選取SOAP模式。
步驟摘要
若要將SOAP端點新增至服務,請執行以下工作:
- 包含專案檔案。
- 建立
EndpointRegistryClient物件。 - 設定SOAP端點屬性。
- 建立SOAP端點。
- 啟用端點。
包含專案檔
在您的開發專案中包含必要的檔案。 如果您使用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端點
使用Java API新增SOAP端點至服務:
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-livecycle-client.jar。
-
建立EndpointRegistry使用者端物件。
- 建立包含連線屬性的
ServiceClientFactory物件。 - 使用它的建構函式並傳遞
EndpointRegistryClient物件來建立ServiceClientFactory物件。
- 建立包含連線屬性的
-
設定SOAP端點屬性。
- 使用物件的建構函式建立
CreateEndpointInfo物件。 - 叫用
CreateEndpointInfo物件的setConnectorId方法並傳遞字串值SOAP,以指定聯結器識別碼值。 - 透過叫用
CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。 - 透過叫用
CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。 - 透過叫用
CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。 - 指定叫用
CreateEndpointInfo物件的setOperationName方法,並傳遞指定作業名稱的字串值,以叫用的作業。 對於SOAP和EJB端點,請指定萬用字元(*),這表示所有作業。
- 使用物件的建構函式建立
-
建立SOAP端點。
透過叫用
EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表新SOAP端點的Endpoint物件。 -
啟用端點。
透過叫用
EndpointRegistryClient物件的enable方法啟用端點,並傳遞Endpoint方法傳回的createEndpoint物件。
新增Watched資料夾端點
您可以使用AEM Forms Java API,以程式設計方式將Watched資料夾端點新增至服務。 透過新增Watched資料夾端點,您可以讓使用者將檔案(例如PDF檔案)放在資料夾中。 將檔案放在資料夾中時,會叫用已設定的服務並操作檔案。 服務執行指定的作業後,會將修改的檔案儲存在指定的輸出資料夾中。 觀察資料夾已設定為以固定速率間隔或以cron排程掃描,例如每個星期一、星期三和星期五中午。
為了以程式設計方式將Watched資料夾端點新增至服務,請考慮下列名為 EncryptDocument 的短期程式。 (請參閱瞭解AEM Forms程式。)
此程式接受不安全的PDF檔案作為輸入值,然後將不安全的PDF檔案傳遞至加密服務的EncryptPDFUsingPassword作業。 PDF檔案已使用密碼加密,而密碼加密的PDF檔案是此程式的輸出值。 輸入值的名稱(不安全的PDF檔案)為InDoc,資料型別為com.adobe.idp.Document。 輸出值(以密碼加密的PDF檔案)的名稱為SecuredDoc,資料型別為com.adobe.idp.Document。
步驟摘要
若要將Watched資料夾端點新增至服務,請執行下列工作:
- 包含專案檔案。
- 建立
EndpointRegistryClient物件。 - 設定Watched資料夾端點屬性。
- 指定設定值。
- 定義輸入引數值。
- 定義輸出引數值。
- 建立Watched資料夾端點。
- 啟用端點。
包含專案檔
在您的開發專案中包含必要的檔案。 如果您使用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&;ast;60&;ast;1000毫秒。 此設定可防止watched資料夾在等待十分鐘後掃描檔案。 預設值為 0。
- excludeFilePattern: watched資料夾用來判斷要掃描和擷取哪些檔案和資料夾的模式。 任何具有此模式的檔案或資料夾都不會掃描以進行處理。 當輸入是包含多個檔案的資料夾時,此設定非常有用。 資料夾的內容可以複製到一個資料夾中,該資料夾的名稱將由watched資料夾擷取。 此步驟可防止watched資料夾在資料夾完全複製到輸入資料夾之前擷取資料夾進行處理。 例如,如果excludeFilePattern值為
data*,則不會擷取符合data*的所有檔案和資料夾。 這包括名為data1、data2等等的檔案和資料夾。 此外,模式可附加萬用字元模式,以指定檔案模式。 Watched資料夾會修改規則運算式,以支援*.*和*.pdf等萬用字元模式。 規則運算式不支援這些萬用字元模式。 - includeFilePattern: watched資料夾用來判斷要掃描和擷取哪些資料夾和檔案的模式。 例如,如果此值為
*,則會擷取符合input*的所有檔案和資料夾。 這包括名為input1、input2等等的檔案和資料夾。 預設值為*。 此值表示所有檔案和資料夾。 此外,模式可附加萬用字元模式,以指定檔案模式。 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 API新增Watched資料夾端點:
-
包含專案檔案。
在您的Java專案的類別路徑中包含使用者端JAR檔案,例如adobe-livecycle-client.jar。
-
建立EndpointRegistry使用者端物件。
- 建立包含連線屬性的
ServiceClientFactory物件。 - 使用它的建構函式並傳遞
EndpointRegistryClient物件來建立ServiceClientFactory物件。
- 建立包含連線屬性的
-
設定Watched資料夾端點屬性。
- 使用物件的建構函式建立
CreateEndpointInfo物件。 - 叫用
CreateEndpointInfo物件的setConnectorId方法並傳遞字串值WatchedFolder,以指定聯結器識別碼值。 - 透過叫用
CreateEndpointInfo物件的setDescription方法並傳遞描述端點的字串值來指定端點的描述。 - 透過叫用
CreateEndpointInfo物件的setName方法並傳遞指定名稱的字串值來指定端點的名稱。 - 透過叫用
CreateEndpointInfo物件的setServiceId方法並傳遞指定服務名稱的字串值,來指定端點所屬的服務。 - 指定叫用
CreateEndpointInfo物件的setOperationName方法,並傳遞指定作業名稱的字串值,以叫用的作業。 通常,在為源自於Workbench中建立的程式之服務建立Watched資料夾端點時,會叫用操作的名稱。
- 使用物件的建構函式建立
-
指定設定值。
對於要為Watched資料夾端點設定的每個設定值,您必須叫用
CreateEndpointInfo物件的setConfigParameterAsText方法。 例如,若要設定url組態值,請叫用CreateEndpointInfo物件的setConfigParameterAsText方法,並傳遞下列字串值:- 字串值,指定組態值的名稱。 設定
url組態值時,請指定url。 - 字串值,指定設定值的值。 設定
url設定值時,請指定watched資料夾位置。
注意
若要檢視為EncryptDocument服務設定的所有設定值,請參閱位於QuickStart:使用Java API新增Watched資料夾端點的Java程式碼範例。 - 字串值,指定組態值的名稱。 設定
-
定義輸入引數值。
透過叫用
CreateEndpointInfo物件的setInputParameterMapping方法定義輸入引數值,並傳遞下列值:- 字串值,指定輸入引數的名稱。 例如,EncryptDocument服務的輸入引數名稱是
InDoc。 - 字串值,指定輸入引數的資料型別。 例如,
InDoc輸入引數的資料型別是com.adobe.idp.Document。 - 字串值,指定對應型別。 例如,您可以指定
variable。 - 字串值,指定對應型別值。 例如,您可以指定&;ast;.pdf作為檔案模式。
注意
叫用每個要定義的輸入引數值的setInputParameterMapping方法。 由於EncryptDocument程式只有一個輸入引數,因此您需要叫用此方法一次。 - 字串值,指定輸入引數的名稱。 例如,EncryptDocument服務的輸入引數名稱是
-
定義輸出引數值。
透過叫用
CreateEndpointInfo物件的setOutputParameterMapping方法定義輸出引數值,並傳遞下列值:- 字串值,指定輸出引數的名稱。 例如,EncryptDocument服務的輸出引數名稱是
SecuredDoc。 - 字串值,指定輸出引數的資料型別。 例如,
SecuredDoc輸出引數的資料型別為com.adobe.idp.Document。 - 字串值,指定對應型別。 例如,您可以指定
%F.pdf。
- 字串值,指定輸出引數的名稱。 例如,EncryptDocument服務的輸出引數名稱是
-
建立Watched資料夾端點。
透過叫用
EndpointRegistryClient物件的createEndpoint方法並傳遞CreateEndpointInfo物件來建立端點。 此方法會傳回代表Watched資料夾端點的Endpoint物件。 -
啟用端點。
啟用端點,方法是叫用
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";
}