Vous consultez actuellement l'aide de la version:

AEM Forms peut être appelé à l’aide de l’API Java d’AEM Forms. Lorsque vous utilisez l’API Java d’AEM Forms, vous pouvez utiliser l’API d’appel ou les bibliothèques client Java. Des bibliothèques client Java sont disponibles pour des services tels que le service Rights Management. Ces API fortement typées vous permettent de développer des applications Java qui appellent AEM Forms.

Les API d’appel sont des classes situées dans le package com.adobe.idp.dsc. À l’aide de ces classes, vous pouvez envoyer une demande d’appel directement à un service et traiter une réponse d’appel retournée. Utilisez l’API d’appel pour appeler les processus à durée de vie courte ou longue créés à l’aide de Workbench.

La méthode recommandée pour appeler un service par programmation consiste à utiliser une bibliothèque client Java correspondant au service, par opposition à l’API d’appel. Par exemple, pour appeler le service Encryption, utilisez la bibliothèque client du service Encryption. Pour effectuer une opération de service Encryption, appelez une méthode appartenant à l’objet client du service Encryption. Vous pouvez chiffrer un document PDF avec un mot de passe en appelant la méthode de l’objet EncryptionServiceClient encryptPDFUsingPassword.

L’API Java prend en charge les fonctionnalités suivantes :

  • Protocole de transport RMI pour appel à distance

  • Transport VM pour l’appel local

  • SOAP pour l’appel à distance

  • Authentification différente, telle que le nom d’utilisateur et le mot de passe

  • Demandes d’appel synchrones et asynchrones

Site Web d’Adobe Developer

Le site Web d’Adobe Developer contient les articles suivants traitant de l’appel des services AEM Forms à l’aide de l’API Java :

Utilisation des servlets Java pour appeler les processus AEM Forms

Appel de l’API AEM Forms Distiller de Java

Voir aussi

Inclusion des fichiers de bibliothèque Java d’AEM Forms

Pour appeler un service AEM Forms par programmation à l’aide de l’API Java, incluez les fichiers de bibliothèque requis (fichiers JAR) dans le chemin d’accès aux classes de votre projet Java. Les fichiers JAR que vous incluez dans le chemin d’accès aux classes de votre application client dépendent de plusieurs facteurs :

  • Le service AEM Forms à appeler. Une application client peut appeler un ou plusieurs services.

  • Le mode dans lequel vous voulez appeler un service AEM Forms. Vous pouvez employer le mode EJB ou SOAP. (Voir Réglage des propriétés de la connexion.)

  • Le serveur d’applications J2EE sur lequel AEM Forms est déployé.

Fichiers JAR spécifiques au service

Le tableau suivant énumère les fichiers JAR qui sont nécessaires pour appeler les services AEM Forms.

Fichier

Description

Emplacement

adobe-livecycle-client.jar

Doit toujours être inclus dans le chemin d’accès aux classes d’une application client Java.

<répertoire d’installation>/sdk/client-libs/common

adobe-usermanager-client.jar

Doit toujours être inclus dans le chemin d’accès aux classes d’une application client Java.

<répertoire d’installation>/sdk/client-libs/common

adobe-utilities.jar

Doit toujours être inclus dans le chemin d’accès aux classes d’une application client Java.

<répertoire d’installation>/sdk//client-libs/<app server>

adobe-applicationmanager-client-sdk.jar

Requis pour appeler le service Application Manager.

<répertoire d’installation>/sdk/client-libs/common

adobe-assembler-client.jar

Requis pour appeler le service Assembler.

<répertoire d’installation>/sdk/client-libs/common

adobe-backup-restore-client-sdk.jar

Requis pour appeler l’API du service Backup and Restore.

<répertoire d’installation>/sdk/client-libs/common

adobe-barcodedforms-client.jar

Requis pour appeler le service Barcoded Forms.

<répertoire d’installation>/sdk/client-libs/common

adobe-convertpdf-client.jar

Requis pour appeler le service Convert PDF.

<répertoire d’installation>/sdk/client-libs/common

adobe-distiller-client.jar

Requis pour appeler le service Distiller.

<répertoire d’installation>/sdk/client-libs/common

adobe-docconverter-client.jar

Requis pour appeler le service DocConverter.

<répertoire d’installation>/sdk/client-libs/common

adobe-contentservices-client.jar

Requis pour appeler le service Document Management.

<répertoire d’installation>/sdk/client-libs/common

adobe-encryption-client.jar

Requis pour appeler le service Encryption.

<répertoire d’installation>/sdk/client-libs/common

adobe-forms-client.jar

Requis pour appeler le service Forms.

<répertoire d’installation>/sdk/client-libs/common

adobe-formdataintegration-client.jar

Requis pour appeler le service Form Data Integration.

<répertoire d’installation>/sdk/client-libs/common

adobe-generatepdf-client.jar

Requis pour appeler le service Generate PDF.

<répertoire d’installation>/sdk/client-libs/common

adobe-generate3dpdf-client.jar

Requis pour appeler le service Generate 3D PDF.

<répertoire d’installation>/sdk/client-libs/common

adobe-jobmanager-client-sdk.jar

Requis pour appeler le service Job Manager.

<répertoire d’installation>/sdk/client-libs/common

adobe-output-client.jar

Requis pour appeler le service Output.

<répertoire d’installation>/sdk/client-libs/common

adobe-pdfutility-client.jar

Requis pour appeler le service PDF Utilities ou XMP Utilities.

<répertoire d’installation>/sdk/client-libs/common

adobe-reader-extensions-client.jar

Requis pour appeler le service d’extensions Acrobat Reader DC.

<répertoire d’installation>/sdk/client-libs/common

adobe-repository-client.jar

commons-codec-1.3.jar

Requis pour appeler le service Repository.

<répertoire d’installation>/sdk/client-libs/common

<répertoire d’installation>/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

Requis pour appeler le service Rights Management.

Si AEM Forms est déployé sur JBoss, incluez tous ces fichiers.

<répertoire d’installation>/sdk/client-libs/common

Répertoire lib spécifique à JBoss

adobe-signatures-client.jar

Requis pour appeler le service Signature.

<répertoire d’installation>/sdk/client-libs/common

adobe-taskmanager-client-sdk.jar

Requis pour appeler le service Task Manager.

<répertoire d’installation>/sdk/client-libs/common

adobe-truststore-client.jar

Requis pour appeler le service Trust Store.

<répertoire d’installation>/sdk/client-libs/common

Fichiers JAR d’applications en mode de connexion et J2EE

Le tableau suivant répertorie les fichiers JAR qui dépendent du mode de connexion et du serveur d’applications J2EE sur lequel AEM Forms est déployé.

Fichier

Description

Emplacement

  • 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 appelé à l’aide du mode SOAP, incluez ces fichiers JAR.

<répertoire d’installation>/sdk/client-libs/thirdparty

jbossall-client.jar

Si AEM Forms est déployé sur le serveur d’applications JBoss, incluez ce fichier JAR.

La taille de jbossall-client.jar est nettement inférieure dans JBoss 5.1.0. En effet, JBoss 4.2.1 jbossall-client.jar regroupe toutes les classes requises pour se connecter au serveur JBoss 4.2.1. Cependant, JBoss 5.1.0 jbossall-client.jar ne contient aucune classe. Ce fichier jar contient une référence de chemin d’accès aux classes vers divers fichiers jar client utilisés par les applications client JBoss.

Lors de l’écriture de programmes basés sur l’API d’AEM Forms et exécutés sur JBoss 5.2.1, vous devez placer jbossall-client.jar et tous les fichiers JAR référencés dans un seul dossier, puis inclure jbossall-client.jar dans le chemin d’accès aux classes.

Les classes requises ne seront pas trouvées par le chargeur de classes si jbossall-client.jar et les fichiers JAR référencés ne sont pas co-localisés.

Répertoire lib du client JBoss

Si vous déployez votre application client sur le même serveur d’applications J2EE, vous n’avez pas besoin d’inclure ce fichier.

  • jacorb.jar

  • jnp-client.jar

Si AEM Forms est déployé sur le serveur d’applications JBoss, incluez ce fichier JAR.

Répertoire lib du client JBoss

Si vous déployez votre application client sur le même serveur d’applications J2EE, vous n’avez pas besoin d’inclure ce fichier.

wlclient.jar

Si AEM Forms est déployé sur BEA WebLogic Server®, incluez ce fichier JAR.

Répertoire lib spécifique à WebLogic

Si vous déployez votre application client sur le même serveur d’applications J2EE, vous n’avez pas besoin d’inclure ce fichier.

  • com.ibm.ws.admin.client_6.1.0.jar

  • com.ibm.ws.webservices.thinclient_6.1.0.jar

  • Si AEM Forms est déployé sur le serveur d’application WebSphere, incluez ces fichiers JAR.

  • (com.ibm.ws.webservices.thinclient_6.1.0.jar est requis pour l’appel du service Web).

Répertoire lib spécifique à WebSphere ([WAS_HOME]/runtimes)

Si vous déployez votre application client sur le même serveur d’applications J2EE, vous n’avez pas besoin d’inclure ces fichiers.

Scénarios d’appel

Le tableau suivant spécifie les scénarios d’appel et répertorie les fichiers JAR requis pour appeler correctement AEM Forms.

Services

Mode d’appel

Serveur d’applications J2EE

Fichiers JAR requis

Service Forms

EJB

JBoss

  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

  • jbossall-client.jar

  • jacorb.jar

  • jnp-client.jar

  • adobe-forms-client.jar

Service Forms

Service d’extensions Acrobat Reader DC

Service Signature

EJB

JBoss

  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

  • jbossall-client.jar

  • jacorb.jar

  • jnp-client.jar

  • adobe-forms-client.jar

  • adobe-reader-extensions-client.jar

  • adobe-signatures-client.jar

Service Forms

méthode d’objet

WebLogic

  • 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

Service Forms

Service d’extensions Acrobat Reader DC

Service Signature

SOAP

WebLogic

  • 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

Mise à niveau des fichiers JAR

Si vous effectuez une mise à niveau de LiveCycle vers AEM Forms, il est recommandé d’inclure les fichiers JAR d’AEM Forms dans le chemin d’accès aux classes de votre projet Java. Par exemple, si vous utilisez des services tels que le service Rights Management, vous rencontrerez un problème de compatibilité si vous n’incluez pas les fichiers JAR d’AEM Forms dans votre chemin d’accès aux classes.

Supposant que vous procédez à la mise à niveau vers AEM Forms. Pour utiliser une application Java qui appelle le service Rights Management, incluez les versions AEM Forms des fichiers JAR suivants :

  • adobe-rightsmanagement-client.jar

  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

Voir aussi

Réglage des propriétés de la connexion

Vous définissez les propriétés de connexion pour appeler AEM Forms lors de l’utilisation de l’API Java. Lors de la définition des propriétés de connexion, indiquez si vous souhaitez appeler des services à distance ou localement, ainsi que le mode de connexion et les valeurs d’authentification. Les valeurs d’authentification sont requises si la sécurité des services est activée. Toutefois, si la sécurité du service est désactivée, il n’est pas nécessaire de spécifier des valeurs d’authentification. (Voir Désactivation de la sécurité du service)

Le mode de connexion peut être le mode SOAP ou EJB. Le mode EJB utilise le protocole RMI/IIOP et les performances du mode EJB sont supérieures à celles du mode SOAP. Le mode SOAP est utilisé pour éliminer une dépendance du serveur d’applications J2EE ou lorsqu’un pare-feu se trouve entre AEM Forms et l’application client. Le mode SOAP utilise le protocole https comme moyen de transport sous-jacent et peut communiquer au-delà des limites du pare-feu. Si ni une dépendance de serveur d’applications J2EE ni un pare-feu ne pose problème, il est recommandé d’utiliser le mode EJB.

Pour appeler un service AEM Forms, définissez les propriétés de connexion suivantes :

  • DSC_DEFAULT_EJB_ENDPOINT : si vous utilisez le mode de connexion EJB, cette valeur représente l’URL du serveur d’applications J2EE sur laquelle AEM Forms est déployé. Pour appeler à distance AEM Forms, spécifiez le nom du serveur d’applications J2EE sur lequel AEM Forms est déployé. Si votre application client est située sur le même serveur d’applications J2EE, vous pouvez spécifier localhost . Selon le serveur d’application J2EE sur lequel AEM Forms est déployé, spécifiez l’une des valeurs suivantes :

    • JBoss : http://<ServerName>:8080 (port par défaut)

    • WebSphere : iiop://<ServerName>:2809 (port par défaut)

    • WebLogic : t3://<ServerName>:7001 (port par défaut)

  • DSC_DEFAULT_SOAP_ENDPOINT : si vous utilisez le mode de connexion SOAP, cette valeur représente le point de fin auquel une demande d’appel est envoyée. Pour appeler à distance AEM Forms, spécifiez le nom du serveur d’applications J2EE sur lequel AEM Forms est déployé. Si votre application client est située sur le même serveur d’applications J2EE, vous pouvez spécifier localhost (par exemple : http://localhost:8080.)

    • La valeur du port 8080 est applicable si l’application J2EE est JBoss. Si le serveur d’applications J2EE est IBM® WebSphere®, utilisez le port 9080. Si le serveur d’applications J2EE est WebLogic, utilisez le port 7001. (Ces valeurs sont les valeurs de port par défaut. Si vous modifiez la valeur du port, utilisez le numéro de port applicable.)

  • DSC_TRANSPORT_PROTOCOL : si vous utilisez le mode de connexion EJB, spécifiez ServiceClientFactoryProperties.DSC_EJB_PROTOCOL pour cette valeur. Si vous utilisez le mode de connexion SOAP, spécifiez ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL.

  • DSC_SERVER_TYPE : spécifiez le serveur d’applications J2EE sur lequel AEM Forms est déployé. Les valeurs valides sont JBoss, WebSphere, WebLogic.

    • Si vous définissez cette propriété de connexion sur WebSphere, la valeur java.naming.factory.initial est définie sur com.ibm.ws.naming.util.WsnInitCtxFactory.

    • Si vous définissez cette propriété de connexion sur WebLogic, la valeur java.naming.factory.initial est définie sur weblogic.jndi.WLInitialContextFactory.

    • Si vous définissez cette propriété de connexion sur JBoss, la valeur java.naming.factory.initial est définie sur org.jnp.interfaces.NamingContextFactory.

    • Vous pouvez définir la propriété java.naming.factory.initial sur une valeur répondant à vos exigences si vous ne souhaitez pas utiliser les valeurs par défaut.

    Note : au lieu d’utiliser une chaîne pour définir la propriété de connexion DSC_SERVER_TYPE, vous pouvez utiliser un membre statique de la classe ServiceClientFactoryProperties. Les valeurs suivantes peuvent être utilisées : ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE, ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE ou ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE.

  • DSC_CREDENTIAL_USERNAME : spécifie le nom d’utilisateur d’AEM Forms. Pour qu’un utilisateur puisse appeler un service AEM Forms, il lui faut le rôle Services User. Un utilisateur peut également avoir un autre rôle incluant l’autorisation d’appel de services. Sinon, une exception est levée lorsqu’il tente d’appeler un service. Si la sécurité du service est désactivée, il n’est pas nécessaire de spécifier cette propriété de connexion. (Voir Désactivation de la sécurité du service)

  • DSC_CREDENTIAL_PASSWORD : indique la valeur de mot de passe correspondant. Si la sécurité du service est désactivée, il n’est pas nécessaire de spécifier cette propriété de connexion.

  • DSC_REQUEST_TIMEOUT : la limite du délai d’attente de requête par défaut pour la demande SOAP est 1 200 000 millisecondes (20 minutes). Parfois, une demande peut prendre plus de temps pour réaliser l’opération. Par exemple, une demande SOAP qui récupère un grand ensemble d’enregistrements peut nécessiter un délai d’expiration plus long. Vous pouvez utiliser le ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT pour augmenter la limite de délai d’appel de demande pour les requêtes SOAP.

    Remarque : seuls les appels basés sur SOAP prennent en charge la propriété DSC_REQUEST_TIMEOUT.

Pour définir les propriétés de connexion, effectuez les tâches suivantes :

  1. Créez un objet java.util.Properties en utilisant son constructeur.

  2. Pour définir la propriété de connexion DSC_DEFAULT_EJB_ENDPOINT, appelez la méthode setProperty de l’objetjava.util.Properties et transmettez les valeurs suivantes :

    • La Valeur d’énumération ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT

    • Une valeur string qui spécifie l’URL du serveur d’applications J2EE hébergeant AEM Forms

    Remarque :

    Si vous utilisez le mode de connexion SOAP, spécifiez la valeur d’énumération ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT au lieu de la valeur d’énumération ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT.

  3. Pour définir la propriété de connexion DSC_TRANSPORT_PROTOCOL, appelez la méthode setProperty de l’objet java.util.Properties et transmettez les valeurs suivantes :

    • Valeur d’énumération ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL

    • Valeur d’énumération ServiceClientFactoryProperties.DSC_EJB_PROTOCOL

    Remarque :

    Si vous utilisez le mode de connexion SOAP, spécifiez la valeur d’énumération ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL au lieu de la valeur d’énumération ServiceClientFactoryProperties.DSC_EJB_PROTOCOL.

  4. Pour définir la propriété de connexion DSC_SERVER_TYPE, appelez la méthode setProperty de l’objet java.util.Properties et transmettez les valeurs suivantes :

    • Valeur d’énumération ServiceClientFactoryProperties.DSC_SERVER_TYPE

    • Valeur string qui spécifie le serveur d’application J2EE hébergeant AEM Forms (par exemple, si AEM Forms est déployé sur JBoss, spécifiez JBoss).

      1. Pour définir la propriété de connexion DSC_CREDENTIAL_USERNAME, appelez la méthode setProperty de l’objet java.util.Properties et transmettez les valeurs suivantes :

    • Valeur d’énumération ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME

    • Valeur string qui spécifie le nom d’utilisateur requis pour appeler AEM Forms

      1. Pour définir la propriété de connexion DSC_CREDENTIAL_PASSWORD, appelez la méthode setProperty de l’objet java.util.Properties et transmettez les valeurs suivantes :

    • Valeur d’énumération ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD

    • Valeur string qui spécifie la valeur du mot de passe correspondant

Réglage du mode de connexion EJB

L’exemple de code Java suivant définit les propriétés de connexion pour appeler AEM Forms déployé sur JBoss et utilisant le mode de connexion EJB.

 Properties ConnectionProps = new Properties(); 
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "http://localhost: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");

Réglage du mode de connexion EJB pour WebLogic

L’exemple de code Java suivant définit les propriétés de connexion pour appeler AEM Forms déployé sur WebLogic et utilisant le mode de connexion 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");

Réglage du mode de connexion EJB pour WebSphere

L’exemple de code Java suivant définit les propriétés de connexion pour appeler AEM Forms déployé sur WebSphere et utilisant le mode de connexion 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");

Réglage du mode de connexion SOAP

L’exemple de code Java suivant définit les propriétés de connexion pour appeler AEM Forms déployé sur JBoss et utilisant le mode de connexion SOAP.

 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");

Remarque :

Si vous sélectionnez le mode de connexion SOAP, assurez-vous d’inclure des fichiers JAR supplémentaires dans le chemin d’accès aux classes de votre application client.

Définition des propriétés de connexion lorsque la sécurité des services est désactivée

L’exemple de code Java suivant définit les propriétés de connexion requises pour appeler AEM Forms déployé sur le serveur d’applications JBoss et lorsque la sécurité du service est désactivée. (Voir Désactivation de la sécurité du service)

 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");

Remarque :

Tous les outils de démarrage rapide Java associés à la programmation avec AEM Forms affichent les paramètres de connexion EJB et SOAP.

Réglage du mode de connexion SOAP avec limite de délai d’attente de demande personnalisée

 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

Utilisation d’un objet de contexte pour appeler AEM Forms

Vous pouvez utiliser un objet com.adobe.idp.Context pour appeler un service AEM Forms avec un utilisateur authentifié (l’objet du com.adobe.idp.Context représente un utilisateur authentifié). Lors de l’utilisation d’un objet com.adobe.idp.Context, vous n’avez pas besoin de définir les propriétés DSC_CREDENTIAL_USERNAME ou DSC_CREDENTIAL_PASSWORD. Vous pouvez obtenir un objet com.adobe.idp.Context lors de l’authentification des utilisateurs en utilisant la méthode d’authentification de l’objet AuthenticationManagerServiceClient.

La méthode d’authentification renvoie un objet AuthResult contenant les résultats de l’authentification. Vous pouvez créer un objet com.adobe.idp.Context en appelant son constructeur. Ensuite, appelez la méthode initPrincipal de l’objet com.adobe.idp.Context et transmettez l’objet AuthResult, comme indiqué dans le code suivant :

 Context myCtx = new Context();  
 myCtx.initPrincipal(authResult);

Au lieu de fixer les propriétés DSC_CREDENTIAL_USERNAME ou DSC_CREDENTIAL_PASSWORD, vous pouvez appeler la méthode setContext de l’objet ServiceClientFactory et transmettre l’objet com.adobe.idp.Context. Lorsque vous utilisez un utilisateur d’AEM Forms pour appeler un service, assurez-vous qu’il possède le rôle Services User requis pour appeler un service AEM Forms.

L’exemple de code suivant montre comment utiliser un objet com.adobe.idp.Context dans les paramètres de connexion qui sont utilisés pour créer un objet EncryptionServiceClient.

 //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);

Remarque :

Pour plus d’informations sur l’authentification d’un utilisateur, voir Authentification des utilisateurs .

Scénarios d’appel

Les scénarios d’appel suivants sont abordés dans cette section :

  • Une application client exécutée sur sa propre machine virtuelle Java (JVM) appelle une instance AEM Forms autonome.

  • Une application client exécutée sur sa propre JVM appelle des instances AEM Forms en cluster.

Application client appelant une instance autonome AEM Forms

Le diagramme suivant illustre une application client exécutée sur sa propre machine virtuelle et appelant une instance AEM Forms autonome.

Dans ce scénario, une application client s’exécute sur sa propre JVM et appelle les services AEM Forms.

Remarque :

Ce scénario est le scénario d’appel sur lequel toutes les mises en route sont basées.

Application de client appelant des exemples groupés d’AEM Forms

Le diagramme suivant montre une application client s’exécutant dans sa propre JVM et invoquant des instances de AEM Forms situées dans un cluster.

Ce scénario est similaire à celui d’une application client invoquant une instance autonome d’AEM Forms. Cependant, l’URL du fournisseur est différente. Si une application client souhaite se connecter à un serveur d’applications J2EE spécifique, l’application doit changer l’URL pour référencer le serveur d’applications J2EE spécifique.

Le référencement d’un serveur d’applications J2EE spécifique n’est pas recommandé car la connexion entre l’application client et AEM Forms est interrompue si le serveur d’applications s’arrête. Il est recommandé que l’URL du fournisseur fasse référence à un gestionnaire JNDI de niveau cellulaire, au lieu d’un serveur d’applications J2EE spécifique.

Les applications client qui utilisent le mode de connexion SOAP peuvent utiliser le port d’équilibrage de charge HTTP pour le cluster. Les applications client qui utilisent le mode de connexion EJB peuvent se connecter au port EJB d’un serveur d’applications J2EE spécifique. Cette action gère l’équilibrage de charge entre les nœuds du cluster.

WebSphere

L’exemple suivant montre le contenu d’un fichier jndi.properties utilisé pour se connecter à AEM Forms déployé sur WebSphere.

 java.naming.factory.initial=com.ibm.websphere.naming. 
 WsnInitialContextFactory 
 java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810

WebLogic

L’exemple suivant montre le contenu d’un fichier jndi.properties utilisé pour se connecter à AEM Forms déployé sur WebLogic.

 java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory 
 java.naming.provider.url=t3://appserver1:8001, appserver2:8001

JBoss

L’exemple suivant montre le contenu d’un fichier jndi.properties utilisé pour se connecter à AEM Forms déployé sur JBoss.

 java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory 
 java.naming.provider.url= jnp://appserver1:1099, appserver2:1099, 
 appserver3:1099

Remarque :

Consultez votre administrateur pour déterminer le nom du serveur d’applications J2EE et le numéro de port.

Voir aussi

Transmission de données vers les services AEM Forms à l’aide de l’API Java

Les opérations de service AEM Forms consomment ou produisent généralement des documents PDF. Lorsque vous invoquez un service, il est parfois nécessaire de lui transmettre un document PDF (ou d’autres types de documents tels que des données XML). De même, il est parfois nécessaire de gérer un document PDF renvoyé par le service. La classe Java qui vous permet de transmettre des données depuis et vers les services AEM Forms est com.adobe.idp.Document.

Les services AEM Forms n’acceptent aucun autre type de données qu’un document PDF, comme un objet java.io.InputStream ou un tableau d’octets. Un objet com.adobe.idp.Document peut également être utilisé pour transmettre d’autres types de données aux services, comme des données XML.

Un objet com.adobe.idp.Document est un type sérialisable Java, donc il peut être passé sur un appel RMI. Le côté récepteur peut être co-localisé (même hôte, même chargeur de classe), local (même hôte, chargeur de classe différent) ou distant (hôte différent). La transmission du contenu du document est optimisée pour chaque cas. Par exemple, si l’expéditeur et le destinataire se trouvent sur le même hôte, le contenu est transmis via un système de fichiers local. (Dans certains cas, les documents peuvent être passés en mémoire.)

En fonction de la taille de l’objet de com.adobe.idp.Document, les données sont transmises au sein de l’objet com.adobe.idp.Document ou stockées sur le système de fichiers du serveur. Toutes les ressources de stockage temporaires occupées par l’objet du com.adobe.idp.Document sont automatiquement supprimées lors de l’élimination de com.adobe.idp.Document. (Voir Élimination d’objets de document)

Parfois, il est nécessaire de connaître le type de contenu d’un objet com.adobe.idp.Document avant de pouvoir le transmettre à un service. Par exemple, si une opération nécessite un type de contenu spécifique, comme application/pdf, il est recommandé de déterminer le type de contenu. (Voir Détermination du type de contenu d’un document.)

L’objet com.adobe.idp.Document tente de déterminer le type de contenu en utilisant les données fournies. Si le type de contenu ne peut pas être extrait des données fournies (par exemple, lorsque les données ont été fournies sous forme de tableau d’octets), définissez le type de contenu. Pour définir le type de contenu, appelez la méthode setContentType de l’objet com.adobe.idp.Document. (Voir Détermination du type de contenu d’un document)

Si les fichiers de documentation et ressources résident sur le même système de fichiers, cela crée un objet com.adobe.idp.Document plus rapide. Si les fichiers de documentation et ressources résident sur des systèmes de fichiers distants, une opération de copie doit avoir lieu, ce qui affecte les performances.

Une application peut contenir à la fois les types de données com.adobe.idp.Document et org.w3c.dom.Document. Cependant, assurez-vous que vous êtes complètement admissible pour le type de données org.w3c.dom.Document. Pour plus d’informations sur la conversion d’un objet org.w3c.dom.Document à un objet com.adobe.idp.Document, voir le didacticiel de mise en route (mode EJB) : Préremplissage des formulaires avec les mises en page souples à l’aide de l’API Java.

Remarque :

Pour éviter une fuite de mémoire dans WebLogic en utilisant l’objet com.adobe.idp.Document, lisez les informations de documents en blocs de 2 048 octets maximum. Par exemple, le code suivant lit les informations du document en blocs de 2 048 octets :

        // 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();

Voir aussi

Création de documents

Créez un objet com.adobe.idp.Document avant d’appeler une opération de service ayant besoin d’un document PDF (ou d’autres types de documents) comme une valeur d’entrée. La classe com.adobe.idp.Document fournit des constructeurs qui vous permettent de créer un document à partir des types de contenu suivants :

  • Tableau d’octets

  • Objet com.adobe.idp.Document existant

  • Objet java.io.File

  • Objet java.io.InputStream

  • Objet java.net.URL

Création d’un document basé sur un tableau d’octets

L’exemple de code suivant crée un objet com.adobe.idp.Document basé sur un tableau d’octets.

Création d’un objet Document basé sur un tableau d’octets

 Document myPDFDocument = new Document(myByteArray);

Création d’un document à partir d’un autre document

L’exemple de code suivant crée un objet com.adobe.idp.Document basé sur un autre objet com.adobe.idp.Document.

Création d’un objet Document basé sur un autre document

 //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);

Création d’un document basé sur un fichier

L’exemple de code suivant crée un objet com.adobe.idp.Document basé sur un fichier PDF nommé map.pdf. Ce fichier se trouve dans la racine du disque dur C. Ce constructeur tente de définir le type de contenu MIME de l’objet com.adobe.idp.Document en utilisant l’extension de nom de fichier.

Le constructeur com.adobe.idp.Document qui accepte l’objet java.io.File accepte également un paramètre Boolean. En définissant ce paramètre sur true, l’objet com.adobe.idp.Document supprime le fichier. Cette action signifie que vous n’avez pas besoin de supprimer le fichier après l’avoir passé au constructeur com.adobe.idp.Document.

Définir ce paramètre sur false signifie que vous conservez la propriété de ce fichier. Définir ce paramètre sur true est plus efficace. La raison est que l’objet com.adobe.idp.Document peut déplacer le fichier directement sur la zone gérée locale au lieu de le copier (ce qui est plus lent).

Création d’un objet Document basé sur un fichier 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);

Création d’un document basé sur un objet InputStream

L’exemple de code Java suivant crée un objet com.adobe.idp.Document basé sur un objet java.io.InputStream.

Création d’un document à partir d’un objet InputStream

 //Create a Document object based on an InputStream object 
 InputStream is = new FileInputStream("C:\\Map.pdf"); 
 Document myPDFDocument = new Document(is);

Création d’un document basé sur un contenu accessible à partir d’une URL

L’exemple de code Java suivant crée un objet com.adobe.idp.Document basé sur un fichier PDF nommé map.pdf. Ce fichier se trouve dans une application Web nommée WebApp qui s’exécute sur localhost. Ce constructeur tente de définir le type de contenu MIME de l’objet com.adobe.idp.Document en utilisant le type de contenu retourné avec le protocole URL.

L’URL fournie à l’objet com.adobe.idp.Document est toujours lue du côté où l’objet com.adobe.idp.Document original est créé, comme indiqué dans cet exemple :

     Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));

Le fichier c:/temp/input.pdf doit se trouver sur l’ordinateur client (et non sur l’ordinateur serveur). L’ordinateur client est l’emplacement de lecture de l’URL et de création de l’objet com.adobe.idp.Document.

Création d’un document basé sur un contenu accessible à partir d’une 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);

Voir aussi

Traitement des documents retournés

Les opérations de service retournant un document PDF (ou d’autres types de données telles que les données XML) comme valeur de sortie retournent l’objet com.adobe.idp.Document. Après avoir reçu un objet com.adobe.idp.Document, vous pouvez le convertir aux formats suivants :

  • Objet java.io.File

  • Objet java.io.InputStream

  • Tableau d’octets

La ligne suivante de code convertit un objet com.adobe.idp.Document à un objet java.io.InputStream. Supposons que myPDFDocument représente un objet com.adobe.idp.Document :

     java.io.InputStream resultStream = myDocument.getInputStream();

De même, vous pouvez copier le contenu d’un fichier com.adobe.idp.Document dans un fichier local en effectuant les tâches suivantes :

  1. Créez un objet java.io.File.

  2. Appelez la méthode copyToFile de l’objet com.adobe.idp.Document et transmettez-la à l’objet java.io.File.

L’exemple de code suivant copie le contenu d’un objet com.adobe.idp.Document dans un fichier nommé AnotherMap.pdf.

Copie du contenu d’un objet de document dans un fichier

 File outFile = new File("C:\\AnotherMap.pdf"); 
 myDocument.copyToFile (outFile);

Voir aussi

Détermination du type de contenu d’un document

Déterminer le type MIME d’un objet com.adobe.idp.Document en appelant la méthode getContentType de l’objet com.adobe.idp.Document. Cette méthode renvoie une valeur string qui spécifie le type de contenu de l’objet com.adobe.idp.Document. Le tableau suivant décrit les différents types de contenu qu’AEM Forms retourne.

Type MIME

Description

application/pdf

Document PDF

application/vnd.adobe.xdp+xml

XML Data Packaging (XDP), utilisé pour les formulaires XML Forms Architecture (XFA) exportés

text/xml

Signets, pièces jointes ou autres documents XML

application/vnd.fdf

Format de données de formulaires (FDF), utilisé pour les formulaires Acrobat exportés

application/vnd.adobe.xfdf

Format de données de formulaires XML (XFDF), utilisé pour les formulaires Acrobat exportés

application/rdf+xml

Format de données enrichi et XML

application/octet-stream

Format de données générique

NULL

Type MIME non spécifié

L’exemple de code suivant détermine le type de contenu d’un objet com.adobe.idp.Document.

Détermination du type de contenu d’un objet 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);

Voir aussi

Élimination d’objets de document

Lorsque vous n’avez plus besoin d’un objet Document, il est recommandé de l’éliminer en appelant la méthode dispose. Chaque objet Document consomme un descripteur de fichier et jusqu’à 75 Mo d’espace mémoire sur la plate-forme de votre application hôte. Si un objet Document n’est pas éliminé, le processus de collecte de Java Garage le supprime. Toutefois, si vous l’éliminez avant en utilisant la méthode dispose, vous pouvez libérer la mémoire occupée par l’objet Document.

Voir aussi

Appel d’un service à l’aide d’une bibliothèque client Java

Les opérations du service AEM Forms peuvent être appelées à l’aide de l’API fortement typée du service, appelée bibliothèque client Java. Une bibliothèque client Java est un ensemble de classes concrètes permettant d’accéder aux services déployés dans le conteneur de service. Vous instanciez un objet Java qui représente le service à appeler au lieu de créer l’objet InvocationRequest en utilisant l’API d’appel. L’API d’appel est utilisée pour appeler des processus, tels que des processus de longue durée, créés dans Workbench. (Voir Appel de processus pour des intervenants humains de longue durée.)

Pour effectuer une opération de service, appelez une méthode appartenant à l’objet Java. Une bibliothèque client Java contient des méthodes qui associent généralement des opérations un-à-un à des opérations de service. Lorsque vous utilisez une bibliothèque client Java, définissez les propriétés de connexion requises. (Voir Réglage des propriétés de la connexion.)

Après avoir défini les propriétés de connexion, créez un objet ServiceClientFactory utilisé pour instancier un objet Java qui vous permet d’appeler un service. Chaque service qui a une bibliothèque client Java a un objet client correspondant. Par exemple, pour appeler le service Repository, créez un objet ResourceRepositoryClient en utilisant son constructeur et en transmettant l’objet ServiceClientFactory. L’objet ServiceClientFactory est responsable de la gestion des paramètres de connexion nécessaires pour appeler les services AEM Forms.

Bien que l’obtention d’un objet ServiceClientFactory soit généralement rapide, des frais généraux sont à prévoir lorsque l’usine est utilisée pour la première fois. Cet objet est optimisé pour la réutilisation et, par conséquent, le cas échéant, utilisez le même objet ServiceClientFactory lorsque vous créez des objets client Java multiples. En d’autres termes, ne créez pas d’objet ServiceClientFactory distinct pour chaque objet de bibliothèque client que vous créez.

Un paramètre User Manager contrôle la durée de vie de l’assertion SAML qui se trouve dans l’objet com.adobe.idp.Context affectant l’objet ServiceClientFactory. Ce paramètre contrôle toutes les durées de vie du contexte d’authentification dans AEM Forms, y compris tous les appels effectués à l’aide de l’API Java. Par défaut, un objet ServiceCleintFactory peut être utilisé pendant une période de deux heures.

Remarque :

Pour expliquer comment appeler un service à l’aide de l’API Java, l’opération writeResource du service Repository est appelée. Cette opération place une nouvelle ressource dans le référentiel.

Vous pouvez appeler le service Repository en utilisant une bibliothèque client Java et en effectuant les étapes suivantes :

  1. Incluez les fichiers JAR du client, tels que adobe-repository-client.jar, dans le chemin d’accès aux classes de votre projet Java. Pour plus d’informations sur l’emplacement de ces fichiers, voir Inclusion des fichiers de bibliothèque Java AEM Forms.

  2. Définir les propriétés de connexion requises pour appeler un service.

  3. Créez un objet ServiceClientFactory en appelant la méthode statique createInstance de l’objet ServiceClientFactory en transmettant l’objet java.util.Properties qui contient des propriétés de connexion.

  4. Créez un objet ResourceRepositoryClient en utilisant son constructeur et en transmettant l’objet ServiceClientFactory. Utilisez l’objet ResourceRepositoryClient pour appeler les opérations du service Repository.

  5. Créez un objet RepositoryInfomodelFactoryBean en utilisant son constructeur et transmettez-le comme null. Cet objet vous permet de créer un objet Resource qui représente le contenu ajouté au référentiel.

  6. Créez un objet Resource en appelant la méthode newImage de l’objet RepositoryInfomodelFactoryBean et en transmettant les valeurs suivantes :

    • Valeur d’identification unique en spécifiant new Id().

    • Valeur UUID unique en spécifiant new Lid().

    • Nom de la ressource. Vous pouvez spécifier le nom du fichier XDP.

    Convertissez la valeur de retour en Resource.

  7. Créez un objet ResourceContent en appelant la méthode newImage de l’objet RepositoryInfomodelFactoryBean et la conversion de la valeur de retour en ResourceContent. Cet objet représente le contenu ajouté au référentiel.

  8. Créez un objet com.adobe.idp.Document en transmettant un objet java.io.FileInputStream qui stocke le fichier XDP à ajouter au référentiel. (Voir Création d’un document basé sur un objet InputStream.)

  9. Ajoutez le contenu de l’objet com.adobe.idp.Document à l’objet ResourceContent en appelant la méthode setDataDocument de l’objet ResourceContent. Transmettez l’objet com.adobe.idp.Document.

  10. Définissez le type MIME du fichier XDP à ajouter au référentiel en appelant la méthode setMimeType de l’objet ResourceContent et transmettez application/vnd.adobe.xdp+xml.

  11. Ajoutez le contenu de l’objet ResourceContent à l’objet Resource en appelant la méthode setContent de l’objet Resources et en transmettant l’objet ResourceContent.

  12. Ajoutez une description de la ressource en appelant la méthode setDescription de l’objet Resource et en transmettant une valeur string représentant la description de la ressource.

  13. Ajoutez la conception de formulaire au référentiel en appelant la méthode writeResource de l’objet ResourceRepositoryClient et en transmettant les valeurs suivantes :

    • Valeur string qui spécifie le nouveau chemin vers la collecte de ressources contenant la nouvelle ressource

    • L’objet Resource qui a été créé

Voir aussi

Appel d’un processus de courte durée en utilisant l’API d’appel

Vous pouvez appeler un processus de courte durée en utilisant l’API d’appel de Java. Lorsque vous appelez un processus de courte durée à l’aide de l’API d’appel, vous transmettez les valeurs de paramètre requises à l’aide d’un objet java.util.HashMap. Pour chaque paramètre à transmettre à un service, appelez la méthode put de l’objet java.util.HashMap et spécifiez la paire nom-valeur requise par le service pour effectuer l’opération spécifiée. Indiquez le nom exact des paramètres appartenant au processus de courte durée.

Remarque :

Pour plus d’informations sur l’appel d’un processus de longue durée, voir Appel de processus pour des intervenants humains de longue durée.

La discussion ici porte sur l’utilisation de l’API d’appel pour appeler le processus de courte durée AEM Forms suivant, nommé MyApplication/EncryptDocument.

Remarque :

Ce processus n’est pas basé sur un processus AEM Forms existant. Pour suivre l’exemple de code, créez un processus désigné par MyApplication/EncryptDocument à l’aide de Workbench. (Voir Utilisation de Workbench.)

Lorsque ce processus est appelé, il effectue les actions suivantes :

  1. Obtention du document PDF non sécurisé transmis au processus. Cette action est basée sur l’opération SetValue. Le paramètre d’entrée pour ce processus est une variable de processus document désignée par inDoc.

  2. Chiffrement du document PDF avec un mot de passe. Cette action est basée sur l’opération PasswordEncryptPDF. Le document PDF chiffré avec un mot de passe est retourné dans une variable de processus nommée outDoc.

Appelez le processus de courte durée MyApplication/EncryptDocument à l’aide de l’API d’appel Java

Appelez le processus de courte durée MyApplication/EncryptDocument à l’aide de l’API d’appel Java :

  1. Incluez les fichiers JAR du client, tels que adobe-livecycle-client.jar, dans le chemin d’accès aux classes de votre projet Java. (Voir Inclusion des fichiers de bibliothèque Java AEM Forms.)

  2. Créez un objet ServiceClientFactory qui contient des propriétés de connexion. (Voir Réglage des propriétés de la connexion.)

  3. Créez un objet ServiceClient en utilisant son constructeur et en transmettant l’objet ServiceClientFactory. Un objet ServiceClient vous permet d’appeler une opération de service. Il gère des tâches telles que la localisation, la répartition et le routage des demandes d’appel.

  4. Créez un objet java.util.HashMap en utilisant son constructeur.

  5. Appelez la méthode put de l’objet java.util.HashMap pour chaque paramètre d’entrée à transmettre au processus de longue durée. Vu que le processus de courte durée MyApplication/EncryptDocument nécessite un paramètre d’entrée de type Document, il suffit d’appeler la méthode put une fois, comme le montre l’exemple suivant.

     //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);
  6. Créez un objet InvocationRequest en appelant la méthode createInvocationRequest de l’objet ServiceClientFactory et en transmettant les valeurs suivantes :

    • Valeur string qui spécifie le nom du processus de longue durée à appeler. Pour appeler le processus MyApplication/EncryptDocument, spécifiez MyApplication/EncryptDocument.

    • Une valeur string qui représente le nom de l’opération de processus. En général, le nom d’une opération de processus de courte durée est invoke.

    • L’objet java.util.HashMap qui contient les valeurs de paramètre requises par l’opération de service.

    • Une valeur Boolean définie sur true qui crée une demande synchrone (cette valeur est applicable pour appeler un processus de courte durée).

  7. Envoyez la demande d’appel au service en appelant la méthode invoke de l’objet serviceclient et en transmettant l’objet InvocationRequest. La méthode invoke retourne un objet InvocationReponse.

    Remarque :

    Un processus de longue durée peut être appelé en transmettant la valeur false en tant que quatrième paramètre de la méthode createInvocationRequest. La transmission de la valeurfalse crée une requête asynchrone.

  8. Récupérer la valeur de retour de processus en invoquant la méthode getOutputParameter de l’objet InvocationReponse et passant à une valeur string qui spécifie le nom du paramètre de sortie. Dans cette situation, spécifiez outDoc (outDoc est le nom du paramètre de sortie du processus MyApplication/EncryptDocument). Convertissez la valeur de retour en Document, comme le montre l’exemple suivant.

     InvocationResponse response = myServiceClient.invoke(request); 
     Document encryptDoc = (Document) response.getOutputParameter("outDoc");
  9. Créez un objet java.io.File et assurez-vous que l’extension du fichier est .pdf.

  10. Appelez la méthode copyToFile de l’objet com.adobe.idp.Document pour copier le contenu de l’objet com.adobe.idp.Document dans le fichier. Assurez-vous d’utiliser l’objet com.adobe.idp.Document qui a été retourné par la méthode getOutputParameter.

Voir aussi

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne