Invocación de AEM Forms mediante la API de Java invoking-aem-forms-using-the-javaapi
AEM Forms se puede invocar utilizando la API Java de AEM Forms. Al utilizar la API Java de AEM Forms, puede utilizar las bibliotecas API de invocación o de cliente Java. Las bibliotecas de cliente Java están disponibles para servicios como el servicio de Rights Management. Estas API con establecimiento inflexible de tipos le permiten desarrollar aplicaciones Java que invoquen AEM Forms.
La API de invocación son clases que se encuentran en la com.adobe.idp.dsc
paquete. Con estas clases, puede enviar una solicitud de invocación directamente a un servicio y administrar una respuesta de invocación que se devuelve. Utilice la API de invocación para invocar procesos de corta duración o de larga duración creados mediante Workbench.
La forma recomendada de invocar un servicio mediante programación es utilizar una biblioteca de cliente Java que corresponda al servicio en lugar de la API de invocación. Por ejemplo, para invocar el servicio Encryption , utilice la biblioteca de cliente del servicio Encryption . Para realizar una operación del servicio de cifrado, invoque un método que pertenece al objeto cliente del servicio de cifrado. Puede cifrar un documento PDF con una contraseña invocando la variable EncryptionServiceClient
del objeto encryptPDFUsingPassword
método.
La API de Java admite las siguientes funciones:
- Protocolo de transporte RMI para invocación remota
- Transporte de VM para invocación local
- SOAP para invocación remota
- Distinta autenticación, como el nombre de usuario y la contraseña
- Solicitudes de invocación sincrónicas y asíncronas
Consulte también
Inclusión de archivos de biblioteca Java de AEM Forms
Invocación de procesos de larga vida centrados en el ser humano
Invocar AEM Forms mediante servicios web
Configuración de las propiedades de conexión
Pasar datos a servicios de AEM Forms mediante la API de Java
Invocación de un servicio mediante una biblioteca de cliente Java
Invocación de un proceso de corta duración mediante la API de invocación
Creación de una aplicación web de Java que invoque un proceso prolongado centrado en el ser humano
Inclusión de archivos de biblioteca Java de AEM Forms including-aem-forms-java-library-files
Para invocar mediante programación un servicio de AEM Forms utilizando la API de Java, incluya los archivos de biblioteca necesarios (archivos JAR) en la ruta de clase del proyecto Java. Los archivos JAR que incluye en la ruta de clase de la aplicación cliente dependen de varios factores:
- El servicio de AEM Forms que se va a invocar. Una aplicación cliente puede invocar uno o más servicios.
- Modo en el que desea invocar un servicio de AEM Forms. Puede utilizar el modo EJB o SOAP. (Consulte Configuración de las propiedades de conexión.)
standalone.bat -b <Server IP> -c lc_turnkey.xml
para especificar una IP de servidor para EJB.- El servidor de aplicaciones J2EE en el que se implementa AEM Forms.
Archivos JAR específicos del servicio service-specific-jar-files
La siguiente tabla enumera los archivos JAR necesarios para invocar los servicios de AEM Forms.
adobe-repository-client.jar
commons-codec-1.3.jar
<directorio de instalación>/sdk/client-libs/common
<directorio de instalación>/sdk/client-libs\thirdparty
-
adobe-rightsmanagement-client.jar
-
namespace.jar
-
jaxb-api.jar
-
jaxb-impl.jar
-
jaxb-libs.jar
-
jaxb-xjc.jar
-
relaxngDatatype.jar
-
xsdlib.jar
Necesario para invocar el servicio de Rights Management.
Si AEM Forms está implementado en JBoss, incluya todos estos archivos.
<directorio de instalación>/sdk/client-libs/common
Directorio de biblioteca específico de JBoss
Modo de conexión y archivos JAR de la aplicación J2EE connection-mode-and-j2ee-application-jar-files
La siguiente tabla enumera los archivos JAR que dependen del modo de conexión y del servidor de aplicaciones J2EE en el que se implementa AEM Forms.
</thead align="left">
-
activation.jar
-
axis.jar
-
commons-codec-1.3.jar
-
commons-collections-3.1.jar
-
commons-discovery.jar
-
commons-logging.jar
-
dom3-xml-apis-2.5.0.jar
-
jaxen-1.1-beta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
- xercesImpl.jar
- commons-httpclient-3.1.jar
si AEM Forms está implementado en JBoss Application Server, incluya este archivo JAR.
El cargador de clases no encontrará las clases requeridas si jboss-client.jar y los tarros a los que se hace referencia no están ubicados de manera conjunta.
Directorio de biblioteca de cliente JBoss
Si implementa la aplicación cliente en el mismo servidor de aplicaciones J2EE, no es necesario incluir este archivo.
Directorio de bibliotecas específico de WebLogic
Si implementa la aplicación cliente en el mismo servidor de aplicaciones J2EE, no es necesario incluir este archivo.
-
com.ibm.ws.admin.client_6.1.0.jar
-
com.ibm.ws.webservices.thinclient_6.1.0.jar
-
si AEM Forms está implementado en el servidor de aplicaciones WebSphere, incluya estos archivos JAR.
-
(com.ibm.ws.webservices.thinclient_6.1.0.jar es necesario para la invocación de servicio web).
Directorio de biblioteca específico de WebSphere ([WAS_HOME]/runtimes)
Si implementa la aplicación cliente en el mismo servidor de aplicaciones J2EE, no es necesario incluir estos archivos.
Invocación de escenarios invoking-scenarios
La siguiente tabla especifica las situaciones de invocación y enumera los archivos JAR necesarios para invocar AEM Forms correctamente.
</thead align="left"> xmp-uti
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
- jboss-client.jar
- adobe-forms-client.jar
- commons-httpclient-3.1.jar
Servicio de Forms
Servicio de extensiones de Acrobat Reader DC
Servicio de firmas
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
- jboss-client.jar
- commons-httpclient-3.1.jar
-
adobe-forms-client.jar
-
adobe-reader-extensions-client.jar
-
adobe-signatures-client.jar
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
-
wlclient.jar
-
activation.jar
-
axis.jar
-
commons-codec-1.3.jar
-
commons-collections-3.1.jar
-
commons-discovery.jar
-
commons-logging.jar
-
dom3-xml-apis-2.5.0.jar
-
jai_imageio.jar
-
jaxen-1.1-beta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
-
xercesImpl.jar
-
adobe-forms-client.jar
Servicio de Forms
Servicio de extensiones de Acrobat Reader DC
Servicio de firmas
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
-
wlclient.jar
-
activation.jar
-
axis.jar
-
commons-codec-1.3.jar
-
commons-collections-3.1.jar
-
commons-discovery.jar
-
commons-logging.jar
-
dom3-xml-apis-2.5.0.jar
-
jai_imageio.jar
-
jaxen-1.1-beta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
-
xercesImpl.jar
-
adobe-forms-client.jar
-
adobe-reader-extensions-client.jar
-
adobe-signatures-client.jar
Actualización de archivos JAR upgrading-jar-files
Si está actualizando de LiveCycle a AEM Forms, se recomienda incluir los archivos JAR de AEM Forms en la ruta de clase de su proyecto Java. Por ejemplo, si utiliza servicios como el servicio de Rights Management, tendrá un problema de compatibilidad si no incluye archivos JAR de AEM Forms en la ruta de la clase.
Suponiendo que esté actualizando a AEM Forms. Para utilizar una aplicación Java que invoque el servicio de Rights Management, incluya las versiones de AEM Forms de los siguientes archivos JAR:
- adobe-rightsmanagement-client.jar
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
Consulte también
Invocación de AEM Forms mediante la API de Java
Configuración de las propiedades de conexión
Pasar datos a servicios de AEM Forms mediante la API de Java
Invocación de un servicio mediante una biblioteca de cliente Java
Configuración de las propiedades de conexión setting-connection-properties
Las propiedades de conexión se establecen para invocar AEM Forms al utilizar la API de Java. Al configurar las propiedades de conexión, especifique si desea invocar los servicios de forma remota o local, así como el modo de conexión y los valores de autenticación. Los valores de autenticación son necesarios si la seguridad del servicio está habilitada. Sin embargo, si la seguridad del servicio está deshabilitada, no es necesario especificar los valores de autenticación.
El modo de conexión puede ser SOAP o EJB. El modo EJB utiliza el protocolo RMI/IIOP y el rendimiento del modo EJB es mejor que el del modo SOAP. El modo SOAP se utiliza para eliminar una dependencia del servidor de aplicaciones J2EE o cuando se encuentra un firewall entre AEM Forms y la aplicación cliente. El modo SOAP utiliza el protocolo https como transporte subyacente y puede comunicarse a través de los límites del cortafuegos. Si no hay ningún problema con la dependencia del servidor de aplicaciones J2EE o con un cortafuegos, se recomienda utilizar el modo EJB.
Para invocar correctamente un servicio de AEM Forms, establezca las siguientes propiedades de conexión:
-
DSC_DEFAULT_EJB_ENDPOINT: Si está utilizando el modo de conexión EJB, este valor representa la URL del servidor de aplicaciones J2EE en el que se implementa AEM Forms. Para invocar AEM Forms de forma remota, especifique el nombre del servidor de aplicaciones J2EE en el que se implementa AEM Forms. Si la aplicación cliente está ubicada en el mismo servidor de aplicaciones J2EE, puede especificar
localhost
. Dependiendo del servidor de aplicaciones J2EE en el que se implemente AEM Forms, especifique uno de los siguientes valores:- JBoss:
https://<ServerName>:8080 (default port)
- WebSphere:
iiop://<ServerName>:2809 (default port)
- WebLogic:
t3://<ServerName>:7001 (default port)
- JBoss:
-
DSC_DEFAULT_SOAP_ENDPOINT: Si está utilizando el modo de conexión SOAP, este valor representa el punto final al que se envía una solicitud de invocación. Para invocar AEM Forms de forma remota, especifique el nombre del servidor de aplicaciones J2EE en el que se implementa AEM Forms. Si la aplicación cliente está ubicada en el mismo servidor de aplicaciones J2EE, puede especificar
localhost
(por ejemplo,http://localhost:8080
.)- El valor de puerto
8080
es aplicable si la aplicación J2EE es JBoss. Si el servidor de aplicaciones J2EE es IBM® WebSphere®, utilice el puerto9080
. Del mismo modo, si el servidor de aplicaciones J2EE es WebLogic, utilice el puerto7001
. (Estos valores son valores de puerto predeterminados. Si cambia el valor del puerto, utilice el número de puerto aplicable).
- El valor de puerto
-
DSC_TRANSPORT_PROTOCOL: Si está utilizando el modo de conexión EJB, especifique
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
para este valor. Si utiliza el modo de conexión SOAP, especifiqueServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
. -
DSC_SERVER_TYPE: Especifica el servidor de aplicaciones J2EE en el que se implementa AEM Forms. Los valores válidos son
JBoss
,WebSphere
,WebLogic
.- Si establece esta propiedad de conexión en
WebSphere
, eljava.naming.factory.initial
el valor se establece encom.ibm.ws.naming.util.WsnInitCtxFactory
. - Si establece esta propiedad de conexión en
WebLogic
, eljava.naming.factory.initial
el valor se establece enweblogic.jndi.WLInitialContextFactory
. - Del mismo modo, si establece esta propiedad de conexión en
JBoss
, eljava.naming.factory.initial
el valor se establece enorg.jnp.interfaces.NamingContextFactory
. - Puede configurar la variable
java.naming.factory.initial
a un valor que cumpla sus requisitos si no desea utilizar los valores predeterminados.
note note NOTE En lugar de usar una cadena para establecer la variable DSC_SERVER_TYPE
propiedad connection, puede utilizar un miembro estático deServiceClientFactoryProperties
Clase . Se pueden utilizar los siguientes valores:ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE
,ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE
oServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE
. - Si establece esta propiedad de conexión en
-
DSC_CREDENTIAL_USERNAME: Especifica el nombre de usuario de los formularios AEM. Para que un usuario invoque correctamente un servicio de AEM Forms, necesita la función de usuario de servicios. Un usuario también puede tener otra función que incluya el permiso Invocar servicio. De lo contrario, se genera una excepción cuando intentan invocar un servicio. Si la seguridad del servicio está deshabilitada, no es necesario especificar esta propiedad de conexión.
-
DSC_CREDENTIAL_PASSWORD: Especifica el valor de contraseña correspondiente. Si la seguridad del servicio está deshabilitada, no es necesario especificar esta propiedad de conexión.
-
DSC_REQUEST_TIMEOUT: El límite de tiempo de espera predeterminado de la solicitud SOAP es de 120 000 milisegundos (20 minutos). En algún momento, una solicitud puede requerir más tiempo para completar la operación. Por ejemplo, una solicitud SOAP que recupera un gran conjunto de registros puede requerir un límite de tiempo de espera más largo. Puede usar la variable
ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT
para aumentar el límite de tiempo de espera de llamada de solicitud para las solicitudes SOAP.note note NOTE Solo las invocaciones basadas en SOAP admiten la propiedad DSC_REQUEST_TIMEOUT.
Para establecer las propiedades de conexión, realice las siguientes tareas:
-
Cree un
java.util.Properties
usando su constructor. -
Para configurar la variable
DSC_DEFAULT_EJB_ENDPOINT
propiedad connection, invocarjava.util.Properties
del objetosetProperty
y pase los siguientes valores:- La variable
ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
valor de enumeración - Un valor de cadena que especifica la dirección URL del servidor de aplicaciones J2EE que aloja AEM Forms
note note NOTE Si está utilizando el modo de conexión SOAP, especifique la variable ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT
valor de enumeración en lugar de la variableServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
valor de enumeración. - La variable
-
Para configurar la variable
DSC_TRANSPORT_PROTOCOL
propiedad connection, invocarjava.util.Properties
del objetosetProperty
y pase los siguientes valores:- La variable
ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
valor de enumeración - La variable
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
valor de enumeración
note note NOTE Si está utilizando el modo de conexión SOAP, especifique la variable ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
valor de enumeración en lugar de la variableServiceClientFactoryProperties.DSC_EJB_PROTOCOL
valor de enumeración. - La variable
-
Para configurar la variable
DSC_SERVER_TYPE
propiedad connection, invocarjava.util.Properties
del objetosetProperty
y pase los siguientes valores:-
La variable
ServiceClientFactoryProperties.DSC_SERVER_TYPE
valor de enumeración -
Un valor de cadena que especifica el servidor de aplicaciones J2EE que aloja AEM Forms (por ejemplo, si AEM Forms está implementado en JBoss, especifique
JBoss
).- Para configurar la variable
DSC_CREDENTIAL_USERNAME
propiedad connection, invocarjava.util.Properties
del objetosetProperty
y pase los siguientes valores:
- Para configurar la variable
-
La variable
ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME
valor de enumeración -
Un valor de cadena que especifica el nombre de usuario necesario para invocar AEM Forms
- Para configurar la variable
DSC_CREDENTIAL_PASSWORD
propiedad connection, invocarjava.util.Properties
del objetosetProperty
y pase los siguientes valores:
- Para configurar la variable
-
La variable
ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD
valor de enumeración -
Un valor de cadena que especifica el valor de contraseña correspondiente
-
Configuración del modo de conexión EJB para JBoss
El siguiente ejemplo de código Java establece propiedades de conexión para invocar AEM Forms implementado en JBoss y utilizando el modo de conexión EJB.
Properties ConnectionProps = new Properties();
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "https://<hostname>:8080");
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");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DOCUMENT_HTTP_ENDPOINT,"https://<hostname>:8080");
Configuración del modo de conexión EJB para WebLogic
El siguiente ejemplo de código Java establece las propiedades de conexión para invocar AEM Forms implementado en WebLogic y utilizando el modo de conexión EJB.
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");
Configuración del modo de conexión EJB para WebSphere
El siguiente ejemplo de código Java establece las propiedades de conexión para invocar AEM Forms implementado en WebSphere y utilizando el modo de conexión EJB.
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");
Configuración del modo de conexión SOAP
El siguiente ejemplo de código Java establece las propiedades de conexión en modo SOAP para invocar AEM Forms implementado en 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");
Configuración de las propiedades de conexión cuando está deshabilitada la seguridad del servicio
El siguiente ejemplo de código Java establece las propiedades de conexión necesarias para invocar AEM Forms implementado en el servidor de aplicaciones JBoss y cuando la seguridad del servicio está deshabilitada.
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");
Configuración del modo de conexión SOAP con límite de tiempo de espera de solicitud personalizado
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");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT, "1800000"); // Request timeout limit 30 Minutes
Uso de un objeto de contexto para invocar AEM Forms
Puede usar un com.adobe.idp.Context
para invocar un servicio de AEM Forms con un usuario autenticado (la variable com.adobe.idp.Context
representa un usuario autenticado). Al usar un com.adobe.idp.Context
, no es necesario configurar la variable DSC_CREDENTIAL_USERNAME
o DSC_CREDENTIAL_PASSWORD
propiedades. Puede obtener una com.adobe.idp.Context
al crear usuarios mediante la AuthenticationManagerServiceClient
del objeto authenticate
método.
La variable authenticate
devuelve un valor AuthResult
que contiene los resultados de la autenticación. Puede crear un com.adobe.idp.Context
invocando su constructor. A continuación, invoque el com.adobe.idp.Context
del objeto initPrincipal
y pase el AuthResult
como se muestra en el siguiente código:
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
En lugar de configurar la variable DSC_CREDENTIAL_USERNAME
o DSC_CREDENTIAL_PASSWORD
propiedades, puede invocar la variable ServiceClientFactory
del objeto setContext
y pase el com.adobe.idp.Context
objeto. Cuando utilice un usuario de AEM formularios para invocar un servicio, asegúrese de que tenga la función denominada Services User
que es necesario para invocar un servicio de AEM Forms.
El siguiente ejemplo de código muestra cómo utilizar un com.adobe.idp.Context
dentro de la configuración de conexión que se utiliza para crear un EncryptionServiceClient
objeto.
//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://<server>:1099");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DOCUMENT_HTTP_ENDPOINT,"jnp://<server>:1099");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
myFactory.setContext(myCtx);
//Create an EncryptionServiceClient object
EncryptionServiceClient encryptClient = new EncryptionServiceClient(myFactory);
Invocación de escenarios invoking_scenarios-1
En esta sección se tratan los siguientes casos de invocación:
- Una aplicación cliente que se ejecuta en su propia máquina virtual Java (JVM) invoca una instancia AEM Forms independiente.
- Una aplicación cliente que se ejecuta en su propia JVM invoca instancias de AEM Forms agrupadas.
Aplicación de cliente que invoca una instancia de AEM Forms independiente client-application-invoking-a-stand-alone-aem-forms-instance
El diagrama siguiente muestra una aplicación cliente que se ejecuta en su propia JVM e invoca una instancia independiente de AEM Forms.
En este escenario, una aplicación cliente se ejecuta en su propia JVM e invoca los servicios de AEM Forms.
Aplicación de cliente que invoca instancias de AEM Forms agrupadas client-application-invoking-clustered-aem-forms-instances
El diagrama siguiente muestra una aplicación cliente que se ejecuta en su propia JVM e invoca instancias de AEM Forms ubicadas en un clúster.
Este escenario es similar a una aplicación cliente que invoca una instancia de AEM Forms independiente. Sin embargo, la dirección URL del proveedor es diferente. Si una aplicación cliente desea conectarse a un servidor de aplicaciones J2EE específico, la aplicación debe cambiar la URL para hacer referencia al servidor de aplicaciones J2EE específico.
No se recomienda hacer referencia a un servidor de aplicaciones J2EE específico porque la conexión entre la aplicación cliente y AEM Forms termina si el servidor de aplicaciones se detiene. Se recomienda que la URL del proveedor haga referencia a un administrador de JNDI a nivel de celda, en lugar de a un servidor de aplicaciones J2EE específico.
Las aplicaciones cliente que utilizan el modo de conexión SOAP pueden utilizar el puerto de equilibrador de carga HTTP para el clúster. Las aplicaciones cliente que utilizan el modo de conexión EJB pueden conectarse al puerto EJB de un servidor de aplicaciones J2EE específico. Esta acción gestiona el equilibrio de carga entre los nodos del clúster.
WebSphere
El siguiente ejemplo muestra el contenido de un archivo jndi.properties que se utiliza para conectarse a AEM Forms y que se implementa en WebSphere.
java.naming.factory.initial=com.ibm.websphere.naming.
WsnInitialContextFactory
java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810
WebLogic
El siguiente ejemplo muestra el contenido de un archivo jndi.properties que se utiliza para conectarse a AEM Forms que se implementa en WebLogic.
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://appserver1:8001, appserver2:8001
JBoss
El siguiente ejemplo muestra el contenido de un archivo jndi.properties que se utiliza para conectarse a AEM Forms y que se implementa en JBoss.
java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
appserver3:1099
Consulte también
Inclusión de archivos de biblioteca Java de AEM Forms
Pasar datos a servicios de AEM Forms mediante la API de Java
Invocación de un servicio mediante una biblioteca de cliente Java
Pasar datos a servicios de AEM Forms mediante la API de Java passing-data-to-aem-forms-services-using-the-java-api
Las operaciones de servicio de AEM Forms suelen consumir o producir documentos PDF. Al invocar un servicio, a veces es necesario pasar un documento PDF (u otros tipos de documento como datos XML) al servicio. Del mismo modo, a veces es necesario gestionar un documento PDF que se devuelve del servicio. La clase Java que le permite pasar datos desde y hacia los servicios de AEM Forms es com.adobe.idp.Document
.
Los servicios de AEM Forms no aceptan un documento de PDF como otros tipos de datos, como un java.io.InputStream
o una matriz de bytes. A com.adobe.idp.Document
también se puede utilizar para pasar otros tipos de datos, como datos XML, a servicios.
A com.adobe.idp.Document
es un tipo serializable de Java, por lo que se puede pasar a través de una llamada de RMI. El lado receptor puede estar ubicado en el mismo lugar (mismo host, mismo cargador de clase), local (mismo host, diferente cargador de clase) o remoto (diferente host). El paso del contenido del documento está optimizado para cada caso. Por ejemplo, si el remitente y el receptor están ubicados en el mismo host, el contenido se pasa a través de un sistema de archivos local. (En algunos casos, los documentos se pueden pasar en la memoria).
Según el com.adobe.idp.Document
tamaño del objeto, los datos se transmiten dentro de la variable com.adobe.idp.Document
o se almacenan en el sistema de archivos del servidor. Cualquier recurso de almacenamiento temporal ocupado por el com.adobe.idp.Document
se quitan automáticamente al com.adobe.idp.Document
eliminación. (Consulte Eliminación de objetos de documento.)
A veces es necesario conocer el tipo de contenido de un com.adobe.idp.Document
para poder pasarlo a un servicio. Por ejemplo, si una operación requiere un tipo de contenido específico, como application/pdf
, se recomienda determinar el tipo de contenido. (Consulte Determinación del tipo de contenido de un documento.)
La variable com.adobe.idp.Document
intenta determinar el tipo de contenido utilizando los datos suministrados. Si no se puede recuperar el tipo de contenido de los datos suministrados (por ejemplo, cuando los datos se suministraron como una matriz de bytes), defina el tipo de contenido. Para establecer el tipo de contenido, invoque la variable com.adobe.idp.Document
del objeto setContentType
método. (Consulte Determinación del tipo de contenido de un documento)
Si los archivos colaterales residen en el mismo sistema de archivos, se crea una com.adobe.idp.Document
es más rápido. Si los archivos colaterales residen en sistemas de archivos remotos, se debe realizar una operación de copia, lo que afecta al rendimiento.
Una aplicación puede contener ambos com.adobe.idp.Document
y org.w3c.dom.Document
tipos de datos. Sin embargo, asegúrese de que cumple todos los requisitos para la variable org.w3c.dom.Document
tipo de datos. Para obtener información sobre cómo convertir una org.w3c.dom.Document
a com.adobe.idp.Document
objeto, consulte Inicio rápido (modo EJB): Rellenado previo de Forms con diseños flexibles mediante la API de Java.
com.adobe.idp.Document
lea la información del documento en fragmentos de 2048 bytes o menos. Por ejemplo, el siguiente código lee la información del documento en trozos de 2048 bytes: // Set up the chunk size to prevent a potential memory leak
int buffSize = 2048;
// Determine the total number of bytes to read
int docLength = (int) inDoc.length();
byte [] byteDoc = new byte[docLength];
// Set up the reading position
int pos = 0;
// Loop through the document information, 2048 bytes at a time
while (docLength > 0) {
// Read the next chunk of information
int toRead = Math.min(buffSize, docLength);
int bytesRead = inDoc.read(pos, byteDoc, pos, toRead);
// Handle the exception in case data retrieval failed
if (bytesRead == -1) {
inDoc.doneReading();
inDoc.dispose();
throw new RuntimeException("Data retrieval failed!");
}
// Update the reading position and number of bytes remaining
pos += bytesRead;
docLength -= bytesRead;
}
// The document information has been successfully read
inDoc.doneReading();
inDoc.dispose();
Consulte también
Invocación de AEM Forms mediante la API de Java
Configuración de las propiedades de conexión
Creación de documentos creating-documents
Cree un com.adobe.idp.Document
antes de invocar una operación de servicio que requiere un documento de PDF (u otros tipos de documento) como valor de entrada. La variable com.adobe.idp.Document
proporciona constructores que permiten crear un documento a partir de los siguientes tipos de contenido:
- Matriz de bytes
- Una
com.adobe.idp.Document
object - A
java.io.File
object - A
java.io.InputStream
object - A
java.net.URL
object
Creación de un documento basado en una matriz de bytes creating-a-document-based-on-a-byte-array
El siguiente ejemplo de código crea una com.adobe.idp.Document
objeto basado en una matriz de bytes.
Creación de un objeto Document basado en una matriz de bytes
Document myPDFDocument = new Document(myByteArray);
Creación de un documento basado en otro documento creating-a-document-based-on-another-document
El siguiente ejemplo de código crea una com.adobe.idp.Document
objeto basado en otro com.adobe.idp.Document
objeto.
Creación de un objeto Document basado en otro documento
//Create a Document object based on a byte array
InputStream is = new FileInputStream("C:\\Map.pdf");
int len = is.available();
byte [] myByteArray = new byte[len];
int i = 0;
while (i < len) {
i += is.read(myByteArray, i, len);
}
Document myPDFDocument = new Document(myByteArray);
//Create another Document object
Document anotherDocument = new Document(myPDFDocument);
Creación de un documento basado en un archivo creating-a-document-based-on-a-file
El siguiente ejemplo de código crea una com.adobe.idp.Document
objeto basado en un archivo PDF denominado map.pdf. Este archivo se encuentra en la raíz del disco duro C. Este constructor intenta establecer el tipo de contenido MIME de la variable com.adobe.idp.Document
con la extensión de nombre de archivo.
La variable com.adobe.idp.Document
constructor que acepta un java.io.File
también acepta un parámetro booleano. Si establece este parámetro en true
, el com.adobe.idp.Document
elimina el archivo. Esta acción significa que no es necesario eliminar el archivo después de pasarlo a la com.adobe.idp.Document
constructor.
Configuración de este parámetro en false
significa que se mantiene la propiedad de este archivo. Configuración de este parámetro en true
es más eficiente. La razón es porque la variable com.adobe.idp.Document
puede mover el archivo directamente al área local administrada en lugar de copiarlo (lo que es más lento).
Creación de un objeto Document basado en un archivo PDF
//Create a Document object based on the map.pdf source file
File mySourceMap = new File("C:\\map.pdf");
Document myPDFDocument = new Document(mySourceMap,true);
Creación de un documento basado en un objeto InputStream creating-a-document-based-on-an-inputstream-object
El siguiente ejemplo de código Java crea una com.adobe.idp.Document
objeto basado en un java.io.InputStream
objeto.
Creación de un documento basado en un objeto InputStream
//Create a Document object based on an InputStream object
InputStream is = new FileInputStream("C:\\Map.pdf");
Document myPDFDocument = new Document(is);
Creación de un documento basado en contenido accesible desde una dirección URL creating-a-document-based-on-content-accessible-from-an-url
El siguiente ejemplo de código Java crea una com.adobe.idp.Document
objeto basado en un archivo PDF denominado map.pdf. Este archivo se encuentra dentro de una aplicación web denominada WebApp
que se está ejecutando en localhost
. Este constructor intenta establecer la variable com.adobe.idp.Document
tipo de contenido MIME del objeto que utiliza el tipo de contenido devuelto con el protocolo URL.
La URL proporcionada a la variable com.adobe.idp.Document
siempre se lee en el lateral donde se encuentra el objeto original com.adobe.idp.Document
se crea, como se muestra en este ejemplo:
Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));
El archivo c:/temp/input.pdf debe estar ubicado en el equipo cliente (no en el equipo servidor). El equipo cliente es el lugar donde se lee la dirección URL y donde se lee la com.adobe.idp.Document
se creó.
Creación de un documento basado en contenido accesible desde una dirección URL
//Create a Document object based on a java.net.URL object
URL myURL = new URL("http", "localhost", 8080,"/WebApp/map.pdf");
//Create another Document object
Document myPDFDocument = new Document(myURL);
Consulte también
Invocación de AEM Forms mediante la API de Java
Configuración de las propiedades de conexión
Gestión de documentos devueltos handling-returned-documents
Las operaciones de servicio que devuelven un documento de PDF (u otros tipos de datos, como datos XML) como valor de salida devuelven un valor com.adobe.idp.Document
objeto. Después de recibir un com.adobe.idp.Document
, puede convertirlo a los siguientes formatos:
- A
java.io.File
object - A
java.io.InputStream
object - Matriz de bytes
La siguiente línea de código convierte un com.adobe.idp.Document
a java.io.InputStream
objeto. Supongamos que myPDFDocument
representa un com.adobe.idp.Document
objeto:
java.io.InputStream resultStream = myDocument.getInputStream();
Del mismo modo, puede copiar el contenido de un com.adobe.idp.Document
a un archivo local realizando las siguientes tareas:
- Cree un
java.io.File
objeto. - Invocar el
com.adobe.idp.Document
del objetocopyToFile
y pase eljava.io.File
objeto.
El siguiente ejemplo de código copia el contenido de un com.adobe.idp.Document
a un archivo denominado AnotherMap.pdf.
Copia del contenido de un objeto de documento en un archivo
File outFile = new File("C:\\AnotherMap.pdf");
myDocument.copyToFile (outFile);
Consulte también
Invocación de AEM Forms mediante la API de Java
Configuración de las propiedades de conexión
Determinación del tipo de contenido de un documento determining-the-content-type-of-a-document
Determine el tipo MIME de un com.adobe.idp.Document
invocando el objeto com.adobe.idp.Document
del objeto getContentType
método. Este método devuelve un valor de cadena que especifica el tipo de contenido de la variable com.adobe.idp.Document
objeto. En la tabla siguiente se describen los diferentes tipos de contenido que devuelve AEM Forms.
application/pdf
application/vnd.adobe.xdp+xml
text/xml
application/vnd.fdf
application/vnd.adobe.xfdf
application/rdf+xml
application/octet-stream
NULL
El siguiente ejemplo de código determina el tipo de contenido de un com.adobe.idp.Document
objeto.
Determinación del tipo de contenido de un objeto Document
//Determine the content type of the Document object
String ct = myDocument.getContentType();
System.out.println("The content type of the Document object is " +ct);
Consulte también
Invocación de AEM Forms mediante la API de Java
Configuración de las propiedades de conexión
Eliminación de objetos de documento disposing-document-objects
Cuando ya no necesite un Document
, se recomienda eliminarlo invocando su dispose
método. Cada Document
consume un descriptor de archivo y hasta 75 MB de espacio RAM en la plataforma host de la aplicación. Si Document
no se ha eliminado, el proceso de recopilación de Java Garage lo elimina. Sin embargo, eliminándolo antes, usando la variable dispose
, puede liberar la memoria ocupada por el Document
objeto.
Consulte también
Invocación de AEM Forms mediante la API de Java
Inclusión de archivos de biblioteca Java de AEM Forms
Invocación de un servicio mediante una biblioteca de cliente Java
Invocación de un servicio mediante una biblioteca de cliente Java invoking-a-service-using-a-java-client-library
Las operaciones del servicio AEM Forms se pueden invocar utilizando la API con establecimiento inflexible de tipos de un servicio, conocida como biblioteca de cliente Java. A Biblioteca de cliente Java es un conjunto de clases concretas que proporcionan acceso a los servicios implementados en el contenedor de servicios. Cree una instancia de un objeto Java que represente el servicio que se va a invocar en lugar de crear una InvocationRequest
mediante la API de invocación. La API de invocación se utiliza para invocar procesos, como procesos de larga duración, creados en Workbench. (Consulte Invocación de procesos de larga vida centrados en el ser humano.)
Para realizar una operación de servicio, invoque un método que pertenezca al objeto Java. Una biblioteca de cliente Java contiene métodos que normalmente asignan una a una con operaciones de servicio. Cuando utilice una biblioteca de cliente Java, establezca las propiedades de conexión necesarias. (Consulte Configuración de las propiedades de conexión.)
Después de establecer las propiedades de conexión, cree una ServiceClientFactory
objeto que se utiliza para crear una instancia de un objeto Java que le permita invocar un servicio. Cada servicio que tiene una biblioteca de cliente Java tiene un objeto cliente correspondiente. Por ejemplo, para invocar el servicio Repositorio, cree un ResourceRepositoryClient
usando su constructor y pasando el ServiceClientFactory
objeto. La variable ServiceClientFactory
es responsable de mantener la configuración de conexión necesaria para invocar los servicios de AEM Forms.
Aunque obtiene un ServiceClientFactory
normalmente es rápido, se incurre en cierta sobrecarga cuando se utiliza por primera vez la fábrica. Este objeto está optimizado para su reutilización y, por lo tanto, cuando sea posible, utilice el mismo ServiceClientFactory
cuando esté creando varios objetos de cliente Java. Es decir, no cree un ServiceClientFactory
para cada objeto de biblioteca de cliente que cree.
Existe una configuración del Administrador de usuarios que controla la duración de la afirmación de SAML que se encuentra dentro de la variable com.adobe.idp.Context
objeto que afecta a la variable ServiceClientFactory
objeto. Esta configuración controla todas las duraciones del contexto de autenticación en AEM Forms, incluidas todas las invocaciones realizadas mediante la API de Java. De forma predeterminada, el periodo de tiempo en el que una ServiceCleintFactory
se puede utilizar en dos horas.
writeResource
se invoca a . Esta operación coloca un nuevo recurso en el repositorio.Puede invocar el servicio Repositorio utilizando una biblioteca de cliente Java y realizando los siguientes pasos:
-
Incluya archivos JAR del cliente, como adobe-repository-client.jar, en la ruta de clase de su proyecto Java. Para obtener información sobre la ubicación de estos archivos, consulte Inclusión de archivos de biblioteca Java de AEM Forms.
-
Establezca las propiedades de conexión necesarias para invocar un servicio.
-
Cree un
ServiceClientFactory
invocando el objetoServiceClientFactory
estático del objetocreateInstance
y pasando eljava.util.Properties
objeto que contiene propiedades de conexión. -
Cree un
ResourceRepositoryClient
usando su constructor y pasando elServiceClientFactory
objeto. Utilice la variableResourceRepositoryClient
para invocar operaciones de servicio de Repositorio. -
Cree un
RepositoryInfomodelFactoryBean
mediante el uso de su constructor y pasenull
. Este objeto permite crear unResource
que representa el contenido que se agrega al repositorio. -
Cree un
Resource
invocando el objetoRepositoryInfomodelFactoryBean
del objetonewImage
y pasando los siguientes valores:- Un valor de ID único especificando
new Id()
. - Un valor UUID único especificando
new Lid()
. - Nombre del recurso. Puede especificar el nombre del archivo XDP.
Conversión del valor devuelto a
Resource
. - Un valor de ID único especificando
-
Cree un
ResourceContent
invocando el objetoRepositoryInfomodelFactoryBean
del objetonewImage
y convertir el valor devuelto aResourceContent
. Este objeto representa el contenido que se agrega al repositorio. -
Cree un
com.adobe.idp.Document
objeto pasando unjava.io.FileInputStream
que almacena el archivo XDP que se agregará al repositorio. (Consulte Creación de un documento basado en un objeto InputStream.) -
Añada el contenido del
com.adobe.idp.Document
alResourceContent
invocando el objetoResourceContent
del objetosetDataDocument
método. Pase elcom.adobe.idp.Document
objeto. -
Establezca el tipo MIME del archivo XDP que desea agregar al repositorio invocando la variable
ResourceContent
del objetosetMimeType
método y pasoapplication/vnd.adobe.xdp+xml
. -
Añada el contenido del
ResourceContent
alResource
invocando el objetoResource
objeto ‘ssetContent
y pasando elResourceContent
objeto. -
Añada una descripción del recurso invocando la variable
Resource
objeto ‘ssetDescription
y pasando un valor de cadena que representa una descripción del recurso. -
Agregue el diseño de formulario al repositorio invocando la variable
ResourceRepositoryClient
del objetowriteResource
y pasando los siguientes valores:- Un valor de cadena que especifica la ruta a la colección de recursos que contiene el nuevo recurso
- La variable
Resource
objeto creado
Consulte también
Inicio rápido (modo EJB): Escritura de un recurso mediante la API de Java
Invocación de AEM Forms mediante la API de Java
Inclusión de archivos de biblioteca Java de AEM Forms
Invocación de un proceso de corta duración mediante la API de invocación invoking-a-short-lived-process-using-the-invocation-api
Puede invocar un proceso de corta duración mediante la API de invocación de Java. Cuando se invoca un proceso de corta duración mediante la API de invocación, se pasan los valores de parámetro necesarios mediante una java.util.HashMap
objeto. Para que cada parámetro pase a un servicio, invoque la variable java.util.HashMap
del objeto put
y especifique el par nombre-valor que requiere el servicio para realizar la operación especificada. Especifique el nombre exacto de los parámetros que pertenecen al proceso de corta duración.
La discusión aquí es sobre el uso de la API de invocación para invocar el siguiente proceso breve de AEM Forms llamado MyApplication/EncryptDocument
.
MyApplication/EncryptDocument
usando Workbench. (Consulte Uso de Workbench.)Cuando se invoca este proceso, realiza las siguientes acciones:
- Obtiene el documento PDF no protegido que se pasa al proceso. Esta acción se basa en la variable
SetValue
operación. El parámetro de entrada para este proceso es undocument
variable de proceso denominadainDoc
. - Codifica el documento del PDF con una contraseña. Esta acción se basa en la variable
PasswordEncryptPDF
operación. El documento del PDF cifrado con contraseña se devuelve en una variable de proceso denominadaoutDoc
.
Invocar el proceso breve MyApplication/EncryptDocument usando la API de invocación de Java invoke-the-myapplication-encryptdocument-short-lived-process-using-the-java-invocation-api
Invocar el MyApplication/EncryptDocument
proceso breve mediante la API de invocación de Java:
-
Incluya archivos JAR del cliente, como adobe-livecycle-client.jar, en la ruta de clase de su proyecto Java. (Consulte Inclusión de archivos de biblioteca Java de AEM Forms.)
-
Cree un
ServiceClientFactory
objeto que contiene propiedades de conexión. (Consulte Configuración de las propiedades de conexión.) -
Cree un
ServiceClient
usando su constructor y pasando elServiceClientFactory
objeto. AServiceClient
permite invocar una operación de servicio. Gestiona tareas como la localización, el envío y las solicitudes de invocación de enrutamiento. -
Cree un
java.util.HashMap
usando su constructor. -
Invocar el
java.util.HashMap
del objetoput
para que cada parámetro de entrada pase al proceso de larga duración. Porque la variableMyApplication/EncryptDocument
el proceso de corta duración requiere un parámetro de entrada de tipoDocument
, solo tiene que invocar la variableput
método una vez, como se muestra en el siguiente ejemplo.code language-as3 //Create a Map object to store the parameter value for inDoc Map params = new HashMap(); InputStream inFile = new FileInputStream("C:\\Adobe\Loan.pdf"); Document inDoc = new Document(inFile); params.put("inDoc", inDoc);
-
Cree un
InvocationRequest
invocando el objetoServiceClientFactory
del objetocreateInvocationRequest
y pasando los siguientes valores:- Un valor de cadena que especifica el nombre del proceso de larga duración que se va a invocar. Para invocar la variable
MyApplication/EncryptDocument
procesar, especificarMyApplication/EncryptDocument
. - Valor de cadena que representa el nombre de la operación de proceso. Normalmente, el nombre de una operación de proceso de corta duración es
invoke
. - La variable
java.util.HashMap
que contiene los valores de parámetro que requiere la operación de servicio. - Un valor booleano que especifica
true
, que crea una solicitud sincrónica (este valor se aplica para invocar un proceso de corta duración).
- Un valor de cadena que especifica el nombre del proceso de larga duración que se va a invocar. Para invocar la variable
-
Envíe la solicitud de invocación al servicio invocando el
ServiceClient
del objetoinvoke
y pasando elInvocationRequest
objeto. La variableinvoke
devuelve un valorInvocationReponse
objeto.note note NOTE Se puede invocar un proceso de larga duración pasando el valor false
como cuarto parámetro de la funcióncreateInvocationRequest
método. Paso del valorfalse
crea una solicitud asincrónica. -
Recupere el valor devuelto del proceso invocando la variable
InvocationReponse
del objetogetOutputParameter
y pasando un valor de cadena que especifica el nombre del parámetro de salida. En este caso, especifiqueoutDoc
(outDoc
es el nombre del parámetro de salida para la variableMyApplication/EncryptDocument
proceso). Conversión del valor devuelto aDocument
, como se muestra en el siguiente ejemplo.code language-as3 InvocationResponse response = myServiceClient.invoke(request); Document encryptDoc = (Document) response.getOutputParameter("outDoc");
-
Cree un
java.io.File
y asegúrese de que la extensión de archivo es .pdf. -
Invocar el
com.adobe.idp.Document
del objetocopyToFile
para copiar el contenido delcom.adobe.idp.Document
al archivo. Asegúrese de usar la variablecom.adobe.idp.Document
objeto devuelto por elgetOutputParameter
método.
Consulte también
Inicio rápido: Invocación de un proceso de corta duración mediante la API de invocación
Invocación de procesos de larga vida centrados en el ser humano
Inclusión de archivos de biblioteca Java de AEM Forms