步骤摘要
要向服务添加EJB端点,请执行以下任务:
- 包括项目文件。
- 创建
EndpointRegistry Client
对象。 - 设置EJB终结点属性。
- 创建EJB端点。
- 启用端点。
包含项目文件
在开发项目中包含必要的文件。 必须将以下JAR文件添加到项目的类路径中:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-utilities.jar(如果在JBoss Application Server上部署了AEM Forms,则此为必填字段)
- 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端点:
-
包括项目文件。
将客户端JAR文件(如adobe-livecycle-client.jar)包含在Java项目的类路径中。 (
-
创建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方法并传递createEndpoint
方法返回的Endpoint
对象来启用终结点。
添加SOAP端点
您可以使用AEM Forms Java API以编程方式将SOAP端点添加到服务。 通过添加SOAP端点,可以使客户端应用程序使用SOAP模式调用该服务。 即,在设置调用AEM Forms所需的连接属性时,可以选择SOAP模式。
步骤摘要
要向服务添加SOAP端点,请执行以下任务:
- 包括项目文件。
- 创建
EndpointRegistryClient
对象。 - 设置SOAP端点属性。
- 创建SOAP端点。
- 启用端点。
包含项目文件
在开发项目中包含必要的文件。 如果使用Java创建客户端应用程序,请包含必要的JAR文件。 如果使用Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-utilities.jar(如果在JBoss Application Server上部署了AEM Forms,则此为必填字段)
- jbossall-client.jar(如果将AEM Forms部署在JBoss Application Server上,则此为必需字段)
创建SOAP端点需要这些JAR文件。 但是,如果您使用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端点添加到服务:
-
包括项目文件。
将客户端JAR文件(如adobe-livecycle-client.jar)包含在Java项目的类路径中。
-
创建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方法启用终结点,并传递createEndpoint
方法返回的Endpoint
对象。
添加观察文件夹端点
您可以使用AEM Forms Java API以编程方式将观察文件夹端点添加到服务。 通过添加“观察文件夹”端点,用户可以将文件(如PDF文件)放置在文件夹中。 将文件放在文件夹中后,将调用配置的服务并操作文件。 服务执行指定的操作后,将修改的文件保存在指定的输出文件夹中。 观察文件夹配置为按固定速率间隔或按cron时间表进行扫描,例如每周一、周三和周五中午。
为了以编程方式将Watched Folder端点添加到服务,请考虑以下名为 EncryptDocument 的短暂进程。 (请参阅了解AEM Forms流程。)
此进程接受不安全的PDF文档作为输入值,然后将不安全的PDF文档传递到加密服务的EncryptPDFUsingPassword
操作。 PDF文档使用密码进行加密,而密码加密的PDF文档是此过程的输出值。 输入值(不安全的PDF文档)的名称为InDoc
,数据类型为com.adobe.idp.Document
。 输出值(密码加密的PDF文档)的名称为SecuredDoc
,数据类型为com.adobe.idp.Document
。
步骤摘要
要向服务添加Watched文件夹端点,请执行以下任务:
- 包括项目文件。
- 创建
EndpointRegistryClient
对象。 - 设置观察文件夹终结点属性。
- 指定配置值。
- 定义输入参数值。
- 定义输出参数值。
- 创建观察文件夹端点。
- 启用端点。
包含项目文件
在开发项目中包含必要的文件。 如果使用Java创建客户端应用程序,请包含必要的JAR文件。 如果使用Web服务,请确保包含代理文件。
必须将以下JAR文件添加到项目的类路径中:
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
- adobe-utilities.jar(如果在JBoss Application Server上部署了AEM Forms,则此为必填字段)
- jbossall-client.jar(如果将AEM Forms部署在JBoss Application Server上,则此为必需字段)
有关这些JAR文件位置的信息,请参阅包括AEM Forms Java库文件。
创建EndpointRegistry客户端对象
要以编程方式添加观察文件夹端点,您必须创建一个EndpointRegistryClient
对象。
设置Watched文件夹终结点属性
要为服务创建Watched文件夹端点,请指定以下值:
- 连接器标识符:指定已创建的终结点的类型。 要创建Watched文件夹终结点,请指定
WatchedFolder
。 - 描述:指定终结点的描述。
- 名称:指定终结点的名称。
- 服务标识符:指定终结点所属的服务。 例如,要将Watched文件夹端点添加到此部分中介绍的进程(使用Workbench激活时,进程将成为服务),请指定
EncryptDocument
。 - 操作名称:指定使用终结点调用的操作的名称。 通常,在为源自在Workbench中创建的进程的服务创建观察文件夹端点时,操作的名称为
invoke
。
指定配置值
以编程方式将观察文件夹端点添加到服务时,指定观察文件夹端点的配置值。 如果使用管理控制台添加观察文件夹终结点,则这些配置值由管理员指定。
以下列表指定以编程方式将Watched文件夹端点添加到服务时设置的配置值:
- url:指定观察文件夹位置。 在群集环境中,此值必须指向可从群集中的每台计算机访问的共享网络文件夹。
- asynchronous:将调用类型标识为异步或同步。 瞬态和同步进程只能同步调用。 默认值为true。 建议使用异步。
- cronExpression:由Quartz用来安排对输入目录的轮询。
- purgeDuration:这是必需属性。 当结果文件夹中的文件和文件夹早于此值时将清除它们。 此值以天为单位。 此属性有助于确保结果文件夹不会填满。 值为–1天表示从不删除结果文件夹。 默认值为 -1。
- repeatInterval:扫描Watched文件夹以进行输入的间隔(以秒为单位)。 除非启用了限制,否则该值应大于处理平均作业的时间;否则,系统可能会过载。 默认值为 5。
- repeatCount:观察文件夹扫描文件夹或目录的次数。 值–1表示无限扫描。 默认值为 -1。
- throttleOn:限制可在任何给定时间处理的观察文件夹作业数。 最大作业数由batchSize值决定。
- userName:从Watched文件夹调用目标服务时使用的用户名。 此值是必需的。 默认值为SuperAdmin。
- domainName:用户的域。 此值是必需的。 默认值为DefaultDom。
- batchSize:每次扫描要提取的文件或文件夹数。 使用此值可防止系统过载;一次扫描太多文件可能会导致崩溃。 默认值为 2。
- waitTime:创建文件夹或文件后,在扫描文件夹或文件之前等待的时间(以毫秒为单位)。 例如,如果等待时间为36,000,000毫秒(1小时),文件是在一分钟前创建的,则将在59分钟或更长时间后提取此文件。 此属性对于确保文件或文件夹完全复制到输入文件夹非常有用。 例如,如果处理的文件很大,且下载文件需要10分钟,则将等待时间设置为10&;ast;60&;ast;1000毫秒。 如果观察文件夹未等待10分钟,则此设置将阻止该文件夹扫描文件。 默认值为 0。
- excludeFilePattern: Watched文件夹用于确定要扫描和选取的文件和文件夹的模式。 将不会扫描任何具有此模式的文件或文件夹以进行处理。 当输入是包含多个文件的文件夹时,此设置非常有用。 文件夹的内容可以复制到一个文件夹,该文件夹具有将被监视文件夹拾取的名称。 此步骤可防止观察文件夹在文件夹完全复制到输入文件夹之前拾取文件夹进行处理。 例如,如果excludeFilePattern值为
data*
,则不会选取与data*
匹配的所有文件和文件夹。 这包括名为data1
、data2
等的文件和文件夹。 此外,还可以使用通配符模式对模式进行补充,以指定文件模式。 观察文件夹修改正则表达式以支持通配符模式,如*.*
和*.pdf
。 正则表达式不支持这些通配符模式。 - includeFilePattern: watched文件夹用于确定扫描和选取哪些文件夹和文件的模式。 例如,如果此值为
*
,则选取与input*
匹配的所有文件和文件夹。 这包括名为input1
、input2
等的文件和文件夹。 默认值为*
。 此值指示所有文件和文件夹。 此外,还可以使用通配符模式对模式进行补充,以指定文件模式。 观察文件夹修改正则表达式以支持通配符模式,如*.*
和*.pdf
。 正则表达式不支持这些通配符模式。 此值为必填项。 - resultFolderName:保存结果的文件夹。 此位置可以是绝对或相对目录路径。 如果结果未出现在此文件夹中,请检查失败文件夹。 只读文件不会得到处理,将保存在故障文件夹中。 默认值为
result/%Y/%M/%D/
。 这是watched文件夹中的结果文件夹。 - preserveFolderName:成功扫描和提取后存储文件的位置。 此位置可以是绝对、相对或空目录路径。 默认值为
preserve/%Y/%M/%D/
。 - failureFolderName:保存失败文件的文件夹。 此位置始终相对于观察文件夹。 只读文件不会得到处理,将保存在故障文件夹中。 默认值为
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文件夹端点后,必须启用它。 启用终结点后,可用于调用服务。 启用该端点后,可在管理控制台中查看它。
另请参阅
使用Java API添加观察文件夹端点
使用AEM Forms Java API添加Watched文件夹端点:
-
包括项目文件。
将客户端JAR文件(如adobe-livecycle-client.jar)包含在Java项目的类路径中。
-
创建EndpointRegistry客户端对象。
- 创建包含连接属性的
ServiceClientFactory
对象。 - 使用构造函数创建
EndpointRegistryClient
对象并传递ServiceClientFactory
对象。
- 创建包含连接属性的
-
设置观察文件夹终结点属性。
- 使用构造函数创建
CreateEndpointInfo
对象。 - 通过调用
CreateEndpointInfo
对象的setConnectorId
方法并传递字符串值WatchedFolder
来指定连接器标识符值。 - 通过调用
CreateEndpointInfo
对象的setDescription
方法并传递描述端点的字符串值来指定端点的描述。 - 通过调用
CreateEndpointInfo
对象的setName
方法并传递指定该名称的字符串值来指定终结点的名称。 - 通过调用
CreateEndpointInfo
对象的setServiceId
方法并传递指定服务名称的字符串值,指定终结点所属的服务。 - 指定通过调用
CreateEndpointInfo
对象的setOperationName
方法并传递指定操作名称的字符串值而调用的操作。 通常,在为源自在Workbench中创建的进程的服务创建Watched文件夹端点时,会调用操作的名称。
- 使用构造函数创建
-
指定配置值。
对于要为Watched文件夹端点设置的每个配置值,必须调用
CreateEndpointInfo
对象的setConfigParameterAsText
方法。 例如,要设置url
配置值,请调用CreateEndpointInfo
对象的setConfigParameterAsText
方法,并传递以下字符串值:- 一个字符串值,它指定配置值的名称。 在设置
url
配置值时,指定url
。 - 指定配置值值的字符串值。 在设置
url
配置值时,指定观察文件夹位置。
注意
若要查看为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服务的输出参数的名称为
-
创建观察文件夹端点。
通过调用
EndpointRegistryClient
对象的createEndpoint
方法并传递CreateEndpointInfo
对象来创建终结点。 此方法返回表示观察文件夹终结点的Endpoint
对象。 -
启用端点。
通过调用
EndpointRegistryClient
对象的enable
方法并传递createEndpoint
方法返回的Endpoint
对象来启用终结点。
观察文件夹配置值常量文件
QuickStart:使用Java API添加Watched Folder端点时,使用必须作为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";
}