LiveCycle service operations can be invoked by using a
service’s strongly typed API, which is known as a Java client library.
A Java client library is a set of concrete classes that provide
access to services deployed in the service container. You instantiate
a Java object that represents the service to invoke instead of creating an InvocationRequest object
by using the Invocation API. The Invocation API is used to invoke
processes, such as long-lived processes, created in Workbench. (See Invoking Human-Centric Long-Lived Processes.)
To perform a service operation, invoke a method that belongs
to the Java object. A Java client library contains methods that
typically map one-to-one with service operations. When using a Java
client library, set required connection properties. (See Setting connection properties.)
After you set connection properties, create a ServiceClientFactory object that
is used to instantiate a Java object that lets you invoke a service.
Each service that has a Java client library has a corresponding
client object. For example, to invoke the Repository service, create
a ResourceRepositoryClient object by using its
constructor and passing the ServiceClientFactory object.
The ServiceClientFactory object is responsible
for maintaining connection settings that are required to invoke
LiveCycle services.
Although obtaining a ServiceClientFactory is
typically fast, some overhead is involved when the factory is first
used. This object is optimized for reuse and therefore, when possible,
use the same ServiceClientFactory object when you
are creating multiple Java client objects. That is, do not create
a separate ServiceClientFactory object for each
client library object that you create.
There is a User Manager setting that controls the lifetime of
the SAML assertion that is inside the com.adobe.idp.Context object
that affects the ServiceClientFactory object. This
setting controls all authentication context lifetimes throughout
LiveCycle, including all invocations performed by using the Java
API. By default, the time period in which a ServiceCleintFactory object
can be used is two hours.
Note: To explain how to invoke a service by using
the Java API, the Repository service’s writeResource operation
is invoked. This operation places a new resource into the repository.
You can invoke the Repository service by using a Java client
library and by performing the following steps:
Include client JAR files, such as the adobe-repository-client.jar,
in your Java project’s class path. For information about the location
of these files, see Including LiveCycle Java library files.
Set connection properties that are required to invoke a service.
Create a ServiceClientFactory object by
invoking the ServiceClientFactory object’s static createInstance method
and passing the java.util.Properties object that
contains connection properties.
Create a ResourceRepositoryClient object
by using its constructor and passing the ServiceClientFactory object.
Use the ResourceRepositoryClient object to invoke
Repository service operations.
Create a RepositoryInfomodelFactoryBean object
by using its constructor and pass null. This object
lets you create a Resource object that represents
the content that is added to the repository.
Create a Resource object by invoking the RepositoryInfomodelFactoryBean object’s newImage method
and passing the following values:
A unique ID value
by specifying new Id().
A unique UUID value by specifying new Lid().
The name of the resource. You can specify the file name of
the XDP file.
Cast the return value to Resource.
Create a ResourceContent object by invoking
the RepositoryInfomodelFactoryBean object’s newImage method
and casting the return value to ResourceContent.
This object represents the content that is added to the repository.
Create a com.adobe.idp.Document object by
passing a java.io.FileInputStream object that stores
the XDP file to add to the repository. (See Creating a document based on an InputStream object.)
Add the content of the com.adobe.idp.Document object
to the ResourceContent object by invoking the ResourceContent object’s setDataDocument method.
Pass the com.adobe.idp.Document object.
Set the MIME type of the XDP file to add to the repository
by invoking the ResourceContent object’s setMimeType method
and passing application/vnd.adobe.xdp+xml.
Add the content of the ResourceContent object
to the Resource object by invoking the Resource object
‘s setContent method and passing the ResourceContent object.
Add a description of the resource by invoking the Resource object
‘s setDescription method and passing a string value
that represents a description of the resource.
Add the form design to the repository by invoking the ResourceRepositoryClient object’s writeResource method
and passing the following values: