You
set connection properties to invoke LiveCycle when using the Java
API. When setting connection properties, specify whether to invoke
services remotely or locally, and also specify the connection mode
and authentication values. Authentication values are required if
service security is enabled. However, if service security is disabled,
it is not necessary to specify authentication values. (See Disabling Service Security.)
The connection mode can either be SOAP or EJB mode. The EJB mode
uses the RMI/IIOP protocol, and the performance of the EJB mode
is better than the performance of the SOAP mode. The SOAP mode is
used to eliminate a J2EE application server dependency or when a
firewall is located between LiveCycle and the client application.
The SOAP mode uses the https protocol as the underlying transport
and can communicate across firewall boundaries. If neither a J2EE application
server dependency or a firewall is an issue, it is recommended that you
use the EJB mode.
To successfully invoke a LiveCycle service, set the following
connection properties:
DSC_DEFAULT_EJB_ENDPOINT: If you are using the
EJB connection mode, this value represents the URL of the J2EE application
server on which LiveCycle is deployed. To remotely invoke LiveCycle,
specify the J2EE application server name on which LiveCycle is deployed.
If your client application is located on the same J2EE application
server, then you can specify localhost. Depending
on which J2EE application server LiveCycle is deployed on, specify one
of the following values:
JBoss: jnp://<ServerName>:1099 (default port)
WebSphere: iiop://<ServerName>:2809 (default port)
WebLogic: t3://<ServerName>:7001 (default port)
DSC_DEFAULT_SOAP_ENDPOINT: If you are using the SOAP
connection mode, this value represents the endpoint to where an
invocation request is sent. To remotely invoke LiveCycle, specify
the J2EE application server name on which LiveCycle is deployed.
If your client application is located on the same J2EE application
server, you can specify localhost (for example, http://localhost:8080.)
The port value 8080 is applicable if the
J2EE application is JBoss. If the J2EE application server is IBM® WebSphere®, use
port 9080. Likewise, if the J2EE application server
is WebLogic, use port 7001. (These values are default port
values. If you change the port value, use the applicable port number.)
DSC_TRANSPORT_PROTOCOL: If you are using the EJB connection
mode, specify ServiceClientFactoryProperties.DSC_EJB_PROTOCOL for
this value. If you are using the SOAP connection mode, specify ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL.
DSC_SERVER_TYPE: Specifies the J2EE application server
on which LiveCycle is deployed. Valid values are JBoss, WebSphere, WebLogic.
If you set this connection property to WebSphere,
the java.naming.factory.initial value is set to com.ibm.ws.naming.util.WsnInitCtxFactory.
If you set this connection property to WebLogic,
the java.naming.factory.initial value is set to weblogic.jndi.WLInitialContextFactory.
Likewise, if you set this connection property to JBoss,
the java.naming.factory.initial value is set to org.jnp.interfaces.NamingContextFactory.
You can set the java.naming.factory.initial property
to a value that meets your requirements if you do not want to use
the default values.
Hinweis: Instead of
using a string to set the DSC_SERVER_TYPE connection property,
you can use a static member of the ServiceClientFactoryProperties class.
The following values can be used: ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE, ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE,
or ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE.
DSC_CREDENTIAL_USERNAME: Specifies the LiveCycle user
name. For a user to sucessfully invoke a LiveCycle service, they
need the Services User role. A user can also have another role that
includes the Service Invoke permission. Otherwise, an exception
is thrown when they attempt to invoke a service. If service security
is disabled, it is not necessary to specify this connection property.
(See Disabling Service Security.)
DSC_CREDENTIAL_PASSWORD: Specifies the corresponding
password value. If service security is disabled, it is not necessary
to specify this connection property.
DSC_REQUEST_TIMEOUT: The default request timeout limit
for the SOAP request is 1200000 milliseconds (20 minutes). Sometime,
a request can require longer time to complete the operation. For
example, a SOAP request that retrieves a large set of records can
require a longer timeout limit. You can use the ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT to
increase the request call timeout limit for the SOAP requests.
Hinweis: Only
SOAP-based invocations support the DSC_REQUEST_TIMEOUT property.
To set connection properties, perform the following tasks:
Create a java.util.Properties object
by using its constructor.
To set the DSC_DEFAULT_EJB_ENDPOINT connection
property, invoke the java.util.Properties object’s setProperty method
and pass the following values:
Hinweis: If
you are using the SOAP connection mode, specify the ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT enumeration
value instead of the ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT enumeration value.
To set the DSC_TRANSPORT_PROTOCOL connection
property, invoke the java.util.Properties object’s setProperty method
and pass the following values:
Hinweis: If you are using the SOAP
connection mode, specify the ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL enumeration
value instead of the ServiceClientFactoryProperties.DSC_EJB_PROTOCOL enumeration value.
To set the DSC_SERVER_TYPE connection property,
invoke the java.util.Properties object’s setProperty method
and pass the following values:
The ServiceClientFactoryProperties.DSC_SERVER_TYPE enumeration
value
A string value that specifies the J2EE application server
that hosts LiveCycle (for example, if LiveCycle is deployed on JBoss,
specify JBoss).
To set the DSC_CREDENTIAL_USERNAME connection
property, invoke the java.util.Properties object’s setProperty method
and pass the following values:
The ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME enumeration
value
A string value that specifies the user name required to invoke
LiveCycle
To set the DSC_CREDENTIAL_PASSWORD connection
property, invoke the java.util.Properties object’s setProperty method
and pass the following values:
The ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD enumeration
value
A string value that specifies the corresponding password
value
Setting the EJB connection modeThe following Java code example sets connection
properties to invoke LiveCycle deployed on JBoss and using the EJB
connection mode.
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
Setting the EJB connection mode for WebLogicThe following Java code example
sets connection properties to invoke LiveCycle deployed on WebLogic
and using the EJB connection mode.
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "t3://localhost:7001");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "WebLogic");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
Setting the EJB connection mode for WebSphereThe following Java code example
sets connection properties to invoke LiveCycle deployed on WebSphere
and using the EJB connection mode.
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "iiop://localhost:2809");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "WebSphere");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
Setting the SOAP connection modeThe following Java code example sets connection
properties in SOAP mode to invoke LiveCycle deployed on JBoss.
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://localhost:8080");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
Hinweis: If you select the SOAP connection mode, ensure
to include additional JAR files in your client application’s class
path.
Setting connection properties when service security is disabledThe following Java code example
sets connection properties required to invoke LiveCycle deployed
on JBoss Application Server and when service security is disabled.
(See Disabling Service Security.)
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
Hinweis: All Java Quick Starts associated with Programming
with LiveCycle show both EJB and SOAP connection settings.
Setting the SOAP connection mode with custom request timeout limitProperties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://localhost:8080");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT, "1800000"); // Request timeout limit 30 Minutes
Using a Context object to invoke LiveCycleYou can use a com.adobe.idp.Context object
to invoke a LiveCycle service with an authenticated user (the com.adobe.idp.Context object
represents an authenticated user). When using a com.adobe.idp.Context object,
you do not need to set the DSC_CREDENTIAL_USERNAME or DSC_CREDENTIAL_PASSWORD properties.
You can obtain a com.adobe.idp.Context object when
authenicating users by using the AuthenticationManagerServiceClient object’s authenticate method.
The authenticate method
returns an AuthResult object that contains the results
of the authentication. You can create a com.adobe.idp.Context object
by invoking its constructor. Then invoke the com.adobe.idp.Context object’s initPrincipal method
and pass the AuthResult object, as shown in the
following code:
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
Instead of setting
the DSC_CREDENTIAL_USERNAME or DSC_CREDENTIAL_PASSWORD properties,
you can invoke the ServiceClientFactory object’s setContext method
and pass the com.adobe.idp.Context object. When
using a LiveCycle user to invoke a service, ensure that they have
the role named Services User that is required to
invoke a LiveCycle service.
The following code example shows
how to use a com.adobe.idp.Context object within
connection settings that are used to create an EncryptionServiceClient object.
//Authenticate a user and use the Context object within connection settings
// Authenticate the user
String username = "wblue";
String password = "password";
AuthResult authResult = authClient.authenticate(username, password.getBytes());
//Set a Content object that represents the authenticated user
//Use the Context object to invoke the Encryption service
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
//Set connection settings
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://hiro-xp:1099");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
myFactory.setContext(myCtx);
//Create an EncryptionServiceClient object
EncryptionServiceClient encryptClient = new EncryptionServiceClient(myFactory);
Invoking scenariosThe following invoking scenarios are discussed in this
section:
Client application invoking a stand-alone LiveCycle instanceThe following diagram shows a client application running
in its own JVM and invoking a stand-alone LiveCycle instance.
In this scenario, a client application is running in its own
JVM and invokes LiveCycle services.
Hinweis: This scenario is the invoking scenario on which
all Quick Starts are based.
Client application invoking clustered LiveCycle instancesThe following diagram shows a client application running
in its own JVM and invoking LiveCycle instances located in a cluster.
This scenario is similar to a client application invoking a stand-alone
LiveCycle instance. However, the provider URL is different. If a
client application wants to connect to a specific J2EE application
server, the application must change the URL to reference the specific
J2EE application server.
Referencing a specific J2EE application server is not recommended
because the connection between the client application and LiveCycle
is terminated if the application server stops. It is recommended
that the provider URL reference a cell-level JNDI manager, instead
of a specific J2EE application server.
Client applications that use the SOAP connection mode can use
the HTTP load balancer port for the cluster. Client applications
that use the EJB connection mode can connect to the EJB port of
a specific J2EE application server. This action handles the Load
Balancing between cluster nodes.
WebSphereThe
following example shows the contents of a jndi.properties file that
is used to connect to LiveCycle that is deployed on WebSphere.
java.naming.factory.initial=com.ibm.websphere.naming.
WsnInitialContextFactory
java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810
WebLogicThe
following example shows the contents of a jndi.properties file that
is used to connect to LiveCycle that is deployed on WebLogic.
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://appserver1:8001, appserver2:8001
JBossThe
following example shows the contents of a jndi.properties file that
is used to connect to LiveCycle that is deployed on JBoss.
java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
appserver3:1099
Hinweis: Consult your administrator
to determine the J2EE application server name and port number.
|
|
|