Show Menu
ARGOMENTI×

Richiamo di moduli AEM tramite l’API Java

I moduli AEM possono essere richiamati utilizzando l'API Java AEM Forms. Quando utilizzate l'API Java di AEM Forms, potete utilizzare l'API di vocazione o le librerie client Java. Le librerie client Java sono disponibili per servizi come il servizio Rights Management. Queste API fortemente tipizzate consentono di sviluppare applicazioni Java che richiamano AEM Forms.
L'API Invocation è una classe che si trova nel com.adobe.idp.dsc pacchetto. Utilizzando queste classi, potete inviare una richiesta di chiamata direttamente a un servizio e gestire una risposta di chiamata restituita. Utilizzare l'API Invocation per richiamare i processi di breve durata o di lunga durata creati utilizzando Workbench.
Il metodo consigliato per richiamare un servizio a livello di programmazione consiste nell'utilizzare una libreria client Java corrispondente al servizio anziché l'API di vocazione. Ad esempio, per richiamare il servizio di cifratura, utilizzate la libreria client del servizio di cifratura. Per eseguire un'operazione del servizio di cifratura, richiamare un metodo che appartiene all'oggetto client del servizio di cifratura. È possibile cifrare un documento PDF con una password richiamando il EncryptionServiceClient metodo dell' encryptPDFUsingPassword oggetto.
L'API Java supporta le seguenti funzionalità:
  • Protocollo di trasporto RMI per chiamata remota
  • Trasporto VM per invocazione locale
  • SOAP per chiamata remota
  • Autenticazione diversa, ad esempio nome utente e password
  • Richieste di chiamata sincrone e asincrone
Sito Web di Adobe Developer
Il sito Web di Adobe Developer contiene i seguenti articoli che discutono della chiamata ai servizi AEM Forms tramite l'API Java:
Consulta anche

Inclusione di file libreria Java AEM Forms

Per richiamare un servizio AEM Forms a livello di programmazione utilizzando l'API Java, includete i file di libreria (file JAR) richiesti nel percorso di classe del progetto Java. I file JAR inclusi nel percorso di classe dell'applicazione client dipendono da diversi fattori:
  • Il servizio AEM Forms da richiamare. Un'applicazione client può richiamare uno o più servizi.
  • Modalità in cui si desidera richiamare un servizio AEM Forms. È possibile utilizzare la modalità EJB o SOAP. (Vedere Impostazione delle proprietà di connessione.)
(Solo chiavi in mano) Avviate il server AEM Forms con il comando standalone.bat -b <Server IP> -c lc_turnkey.xml per specificare un IP server per EJB
  • Server applicazioni J2EE su cui è distribuito AEM Forms.

File JAR specifici per il servizio

Nella tabella seguente sono elencati i file JAR necessari per richiamare i servizi AEM Forms.
File
Descrizione
Dove si trova
adobe-livecycle-client.jar
Deve essere sempre incluso nel percorso di classe di un'applicazione client Java.
<directory di installazione>/sdk/client-libs/common
adobe-usermanager-client.jar
Deve essere sempre incluso nel percorso di classe di un'applicazione client Java.
<directory di installazione>/sdk/client-libs/common
adobe-utilities.jar
Deve essere sempre incluso nel percorso di classe di un'applicazione client Java.
<directory di installazione>/sdk//client-libs/<server app>
adobe-applicationmanager-client-sdk.jar
Obbligatorio per richiamare il servizio Application Manager.
<directory di installazione>/sdk/client-libs/common
adobe-assembler-client.jar
Obbligatorio per richiamare il servizio Assembler.
<directory di installazione>/sdk/client-libs/common
adobe-backup-restore-client-sdk.jar
Richiesto per richiamare l'API del servizio Backup e ripristino.
<directory di installazione>/sdk/client-libs/common
adobe-barcodedforms-client.jar
Obbligatorio per richiamare il servizio moduli con codice a barre.
<directory di installazione>/sdk/client-libs/common
adobe-convertpdf-client.jar
Obbligatorio per richiamare il servizio Converti PDF.
<directory di installazione>/sdk/client-libs/common
adobe-distiller-client.jar
Obbligatorio per richiamare il servizio Distiller.
<directory di installazione>/sdk/client-libs/common
adobe-docconverter-client.jar
Obbligatorio per richiamare il servizio DocConverter.
<directory di installazione>/sdk/client-libs/common
adobe-contentservices-client.jar
Obbligatorio per richiamare il servizio Document Management.
<directory di installazione>/sdk/client-libs/common
adobe-encryption-client.jar
Richiesto per richiamare il servizio di cifratura.
<directory di installazione>/sdk/client-libs/common
adobe-forms-client.jar
Obbligatorio per richiamare il servizio Forms.
<directory di installazione>/sdk/client-libs/common
adobe-formdataintegration-client.jar
Richiesto per richiamare il servizio di integrazione dei dati del modulo.
<directory di installazione>/sdk/client-libs/common
adobe-generatepdf-client.jar
Richiesto per richiamare il servizio Generate PDF.
<directory di installazione>/sdk/client-libs/common
adobe-generate3dpdf-client.jar
Richiesto per richiamare il servizio Genera PDF 3D.
<directory di installazione>/sdk/client-libs/common
adobe-jobmanager-client-sdk.jar
Obbligatorio per richiamare il servizio Job Manager.
<directory di installazione>/sdk/client-libs/common
adobe-output-client.jar
Obbligatorio per richiamare il servizio Output.
<directory di installazione>/sdk/client-libs/common
adobe-pdfutility-client.jar
Richiesto per richiamare il servizio Utilità PDF o Utilità XMP.
<directory di installazione>/sdk/client-libs/common
adobe-reader-extensions-client.jar
Richiesto per richiamare il servizio di estensione Acrobat Reader DC.
<directory di installazione>/sdk/client-libs/common
adobe-repository-client.jar
commons-codec-1.3.jar
Obbligatorio per richiamare il servizio Repository.
<directory di installazione>/sdk/client-libs/common
<directory di installazione>/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
Richiesto per richiamare il servizio Rights Management.
Se AEM Forms è implementato su JBoss, includi tutti questi file.
<directory di installazione>/sdk/client-libs/common
Directory lib specifica per JBoss
adobe-signatures-client.jar
Obbligatorio per richiamare il servizio Signature.
<directory di installazione>/sdk/client-libs/common
adobe-taskmanager-client-sdk.jar
Richiesto per richiamare il servizio Task Manager.
<directory di installazione>/sdk/client-libs/common
adobe-truststore-client.jar
Obbligatorio per richiamare il servizio Archivio attendibili.
<directory di installazione>/sdk/client-libs/common

Modalità di connessione e file JAR dell'applicazione J2EE

Nella tabella seguente sono elencati i file JAR dipendenti dalla modalità di connessione e dal server applicazione J2EE su cui è distribuito AEM Forms.
File
Descrizione
Dove si trova
  • 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
se AEM Forms viene richiamato utilizzando la modalità SOAP, includi questi file JAR.
<directory di installazione>/sdk/client-libs/thirdparty
jboss-client.jar
se AEM Forms è implementato su JBoss Application Server, includi questo file JAR.
Le classi obbligatorie non vengono trovate dal caricatore di classe se jboss-client.jar e le barre di riferimento non sono co-posizionate.
Directory lib client JBoss
Se distribuite l’applicazione client sullo stesso server applicazione J2EE, non è necessario includere questo file.
wlclient.jar
se AEM Forms è implementato su BEA WebLogic Server®, includete questo file JAR.
Directory lib specifica per WebLogic
Se distribuite l’applicazione client sullo stesso server applicazione J2EE, non è necessario includere questo file.
  • com.ibm.ws.admin.client_6.1.0.jar
  • com.ibm.ws.webservices.thinclient_6.1.0.jar
  • se AEM Forms è implementato su WebSphere Application Server, includi questi file JAR.
  • (com.ibm.ws.webservices.thinclient_6.1.0.jar è richiesto per la chiamata al servizio Web).
Directory lib specifica per WebSphere ( [WAS_HOME] /runtime)
Se distribuite l’applicazione client sullo stesso server applicazione J2EE, non è necessario includere tali file.

Chiamata di scenari

La tabella seguente specifica gli scenari di chiamata ed elenca i file JAR richiesti per richiamare AEM Forms.
Servizi
Modalità di incitamento
Server applicazioni J2EE
File JAR richiesti
Servizio Forms
EJB
JBoss
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • jboss-client.jar
  • adobe-forms-client.jar
  • commons-httpclient-3.1.jar
Servizio Forms
Servizio estensioni Acrobat Reader DC
Servizio Firma
EJB
JBoss
  • 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
Servizio Forms
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
Servizio Forms
Servizio estensioni Acrobat Reader DC
Servizio Firma
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

Aggiornamento dei file JAR

Se state effettuando l'aggiornamento da LiveCycle a AEM Forms, si consiglia di includere i file AEM Forms JAR nel percorso di classe del progetto Java. Ad esempio, se utilizzate servizi come il servizio Rights Management, si verificherà un problema di compatibilità se non includete nel percorso di classe i file JAR di AEM Forms.
Presupponendo che si stia effettuando l'aggiornamento ad AEM Forms. Per utilizzare un'applicazione Java che richiama il servizio Rights Management, includete le versioni AEM Forms dei seguenti file JAR:
  • adobe-rightsmanagement-client.jar
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
Consulta anche

Impostazione delle proprietà di connessione

Le proprietà di connessione vengono impostate per richiamare AEM Forms quando si utilizza l'API Java. Quando si impostano le proprietà di connessione, specificare se richiamare i servizi in remoto o in locale, nonché la modalità di connessione e i valori di autenticazione. I valori di autenticazione sono obbligatori se è abilitata la protezione del servizio. Tuttavia, se la protezione del servizio è disabilitata, non è necessario specificare i valori di autenticazione.
La modalità di connessione può essere SOAP o EJB. La modalità EJB utilizza il protocollo RMI/IIOP e le prestazioni della modalità EJB sono migliori delle prestazioni della modalità SOAP. La modalità SOAP viene utilizzata per eliminare una dipendenza del server applicazione J2EE o quando si trova un firewall tra AEM Forms e l'applicazione client. La modalità SOAP utilizza il protocollo https come trasporto sottostante e può comunicare attraverso i confini del firewall. Se non esiste una dipendenza da un server applicazione J2EE o un firewall, si consiglia di utilizzare la modalità EJB.
Per richiamare un servizio AEM Forms, impostate le seguenti proprietà di connessione:
  • DSC_DEFAULT_EJB_ENDPOINT: Se si utilizza la modalità di connessione EJB, questo valore rappresenta l'URL del server applicazione J2EE su cui è distribuito AEM Forms. Per richiamare AEM Forms in remoto, specificate il nome del server applicazione J2EE su cui AEM Forms è stato distribuito. Se l'applicazione client si trova sullo stesso server applicazione J2EE, è possibile specificare localhost . A seconda del server applicazioni J2EE su cui è distribuito AEM Forms, specifica uno dei seguenti valori:
    • JBoss: https://<ServerName>:8080 (default port)
    • WebSphere: iiop://<ServerName>:2809 (default port)
    • WebLogic: t3://<ServerName>:7001 (default port)
  • DSC_DEFAULT_SOAP_ENDPOINT : Se si utilizza la modalità di connessione SOAP, questo valore rappresenta l'endpoint a cui viene inviata una richiesta di chiamata. Per richiamare AEM Forms in remoto, specificate il nome del server applicazione J2EE su cui AEM Forms è stato distribuito. Se l’applicazione client si trova sullo stesso server applicazione J2EE, è possibile specificare localhost (ad esempio, http://localhost:8080 .)
    • Il valore della porta 8080 è applicabile se l'applicazione J2EE è JBoss. Se il server applicazioni J2EE è IBM® WebSphere®, utilizza la porta 9080 . Analogamente, se il server applicazione J2EE è WebLogic, utilizzare la porta 7001 . (Questi valori sono valori di porta predefiniti. Se modificate il valore della porta, utilizzate il numero di porta applicabile.
  • DSC_TRANSPORT_PROTOCOL : Se utilizzate la modalità di connessione EJB, specificate ServiceClientFactoryProperties.DSC_EJB_PROTOCOL questo valore. Se si utilizza la modalità di connessione SOAP, specificare ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL .
  • DSC_SERVER_TYPE : Specifica il server applicazioni J2EE su cui è distribuito AEM Forms. I valori validi sono JBoss , WebSphere , WebLogic .
    • Se si imposta questa proprietà di connessione su WebSphere , il java.naming.factory.initial valore è impostato su com.ibm.ws.naming.util.WsnInitCtxFactory .
    • Se si imposta questa proprietà di connessione su WebLogic , il java.naming.factory.initial valore è impostato su weblogic.jndi.WLInitialContextFactory .
    • Analogamente, se si imposta questa proprietà di connessione su JBoss , il java.naming.factory.initial valore è impostato su org.jnp.interfaces.NamingContextFactory .
    • Se non si desidera utilizzare i valori predefiniti, è possibile impostare la java.naming.factory.initial proprietà su un valore che soddisfa le proprie esigenze.
    Invece di utilizzare una stringa per impostare la proprietà di DSC_SERVER_TYPE connessione, è possibile utilizzare un membro statico della ServiceClientFactoryProperties classe. È possibile utilizzare i seguenti valori: ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE , ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE o ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE .
  • DSC_CREDENTIAL_USERNAME: Specifica il nome utente dei moduli AEM. Affinché un utente possa richiamare correttamente un servizio AEM Forms, deve avere il ruolo Utente servizi. Un utente può anche avere un altro ruolo che include l'autorizzazione Richiamo assistenza. In caso contrario, viene generata un'eccezione quando tentano di richiamare un servizio. Se la protezione del servizio è disabilitata, non è necessario specificare questa proprietà di connessione.
  • DSC_CREDENTIAL_PASSWORD: Specifica il valore della password corrispondente. Se la protezione del servizio è disabilitata, non è necessario specificare questa proprietà di connessione.
  • DSC_REQUEST_TIMEOUT: Il limite di timeout predefinito per la richiesta SOAP è 1200000 millisecondi (20 minuti). A volte, una richiesta può richiedere più tempo per completare l'operazione. Ad esempio, una richiesta SOAP che recupera un insieme di record di grandi dimensioni può richiedere un limite di timeout più lungo. Potete utilizzare il protocollo ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT per aumentare il limite di timeout delle chiamate per le richieste SOAP.
    nota : Solo le chiamate basate su SOAP supportano la proprietà DSC_REQUEST_TIMEOUT.
Per impostare le proprietà di connessione, eseguire le operazioni seguenti:
  1. Creare un java.util.Properties oggetto utilizzando il relativo costruttore.
  2. Per impostare la proprietà DSC_DEFAULT_EJB_ENDPOINT connection, richiamare il metodo dell' java.util.Properties oggetto setProperty e passare i seguenti valori:
    • Il valore di ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT enumerazione
    • Una stringa che specifica l'URL del server applicazione J2EE che ospita AEM Forms
    Se si utilizza la modalità di connessione SOAP, specificare il valore di ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT enumerazione invece del valore di ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT enumerazione.
  3. Per impostare la proprietà DSC_TRANSPORT_PROTOCOL connection, richiamare il metodo dell' java.util.Properties oggetto setProperty e passare i seguenti valori:
    • Il valore di ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL enumerazione
    • Il valore di ServiceClientFactoryProperties.DSC_EJB_PROTOCOL enumerazione
    Se si utilizza la modalità di connessione SOAP, specificare il valore di ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL enumerazione invece del valore di ServiceClientFactoryProperties.DSC_EJB_PROTOCOL enumerazione.
  4. Per impostare la proprietà DSC_SERVER_TYPE connection, richiamare il metodo dell' java.util.Properties oggetto setProperty e passare i seguenti valori:
    • Il valore ServiceClientFactoryProperties.DSC_SERVER_TYPE di enumerazione
    • Una stringa che specifica il server applicazione J2EE che ospita AEM Forms (ad esempio, se AEM Forms è distribuito su JBoss, specificare JBoss ).
      1. Per impostare la proprietà DSC_CREDENTIAL_USERNAME connection, richiamare il metodo dell' java.util.Properties oggetto setProperty e passare i seguenti valori:
    • Il valore di ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME enumerazione
    • Una stringa che specifica il nome utente richiesto per richiamare AEM Forms
      1. Per impostare la proprietà DSC_CREDENTIAL_PASSWORD connection, richiamare il metodo dell' java.util.Properties oggetto setProperty e passare i seguenti valori:
    • Il valore di ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD enumerazione
    • Valore stringa che specifica il valore della password corrispondente
Impostazione della modalità di connessione EJB per JBoss
L'esempio di codice Java seguente imposta le proprietà di connessione per richiamare AEM Forms implementato su JBoss e utilizzare la modalità di connessione 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");

Impostazione della modalità di connessione EJB per WebLogic
L'esempio di codice Java seguente imposta le proprietà di connessione per richiamare AEM Forms implementato su WebLogic e utilizzare la modalità di connessione 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");

Impostazione della modalità di connessione EJB per WebSphere
L'esempio di codice Java seguente imposta le proprietà di connessione per richiamare AEM Forms distribuiti su WebSphere e utilizzare la modalità di connessione 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");

Impostazione della modalità di connessione SOAP
L'esempio di codice Java seguente imposta le proprietà di connessione in modalità SOAP per richiamare AEM Forms implementato su 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");

Se selezionate la modalità di connessione SOAP, accertatevi di includere ulteriori file JAR nel percorso di classe dell'applicazione client.
Impostazione delle proprietà di connessione quando la protezione del servizio è disabilitata
L'esempio di codice Java seguente imposta le proprietà di connessione necessarie per richiamare AEM Forms implementato in JBoss Application Server e quando la sicurezza del servizio è disabilitata.
 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");

Tutti i Avvio rapido Java associati alla programmazione con AEM Forms mostrano le impostazioni di connessione EJB e SOAP.
Impostazione della modalità di connessione SOAP con il limite di timeout della richiesta personalizzata
 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

Utilizzo di un oggetto Context per richiamare AEM Forms
È possibile utilizzare un com.adobe.idp.Context oggetto per richiamare un servizio AEM Forms con un utente autenticato (l' com.adobe.idp.Context oggetto rappresenta un utente autenticato). Quando si utilizza un com.adobe.idp.Context oggetto, non è necessario impostare le DSC_CREDENTIAL_USERNAME proprietà o DSC_CREDENTIAL_PASSWORD . È possibile ottenere un com.adobe.idp.Context oggetto durante l'autenticazione degli utenti utilizzando il metodo dell' AuthenticationManagerServiceClient oggetto authenticate .
Il authenticate metodo restituisce un AuthResult oggetto che contiene i risultati dell'autenticazione. È possibile creare un com.adobe.idp.Context oggetto richiamandone il costruttore. Quindi, richiamare il metodo dell' com.adobe.idp.Context oggetto initPrincipal e passare l' AuthResult oggetto, come illustrato nel codice seguente:
 Context myCtx = new Context();
 myCtx.initPrincipal(authResult);

Anziché impostare le DSC_CREDENTIAL_USERNAME proprietà o DSC_CREDENTIAL_PASSWORD , è possibile richiamare il metodo dell' ServiceClientFactory oggetto setContext e passare l' com.adobe.idp.Context oggetto. Quando si utilizza un utente di moduli AEM per richiamare un servizio, è necessario assicurarsi che abbia il ruolo Services User richiesto per richiamare un servizio AEM Forms.
L'esempio di codice seguente mostra come utilizzare un com.adobe.idp.Context oggetto all'interno delle impostazioni di connessione utilizzate per creare un EncryptionServiceClient oggetto.
 //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);

Per informazioni complete sull'autenticazione di un utente, consultate Autenticazione di utenti .

Chiamata di scenari

In questa sezione vengono descritti i seguenti scenari di richiamo:
  • Un'applicazione client in esecuzione nella propria macchina virtuale Java (JVM) richiama un'istanza autonoma di AEM Forms.
  • Un'applicazione client in esecuzione nel proprio JVM richiama le istanze di AEM Forms del cluster.

Applicazione client che richiama un'istanza autonoma di AEM Forms

Il diagramma seguente mostra un'applicazione client in esecuzione nella propria JVM e che richiama un'istanza autonoma di AEM Forms.
In questo scenario, un'applicazione client è in esecuzione in una propria JVM e richiama i servizi AEM Forms.
Questo scenario è lo scenario di richiamo su cui si basano tutti gli avvii rapidi.

Chiamata da parte dell'applicazione client di istanze di AEM Forms in cluster

Il diagramma seguente mostra un'applicazione client in esecuzione nella propria JVM e che richiama le istanze di AEM Forms presenti in un cluster.
Questo scenario è simile a quello di un'applicazione client che richiama un'istanza autonoma di AEM Forms. Tuttavia, l'URL del fornitore è diverso. Se un'applicazione client desidera connettersi a un server applicazione J2EE specifico, l'applicazione deve modificare l'URL per fare riferimento al server applicazione J2EE specifico.
Non è consigliabile fare riferimento a uno specifico server applicazione J2EE perché la connessione tra l'applicazione client e AEM Forms viene interrotta se il server applicazione si arresta. È consigliabile che l'URL del provider faccia riferimento a un gestore JNDI a livello di cella, invece di un server applicazione J2EE specifico.
Le applicazioni client che utilizzano la modalità di connessione SOAP possono utilizzare la porta di bilanciamento del carico HTTP per il cluster. Le applicazioni client che utilizzano la modalità di connessione EJB possono connettersi alla porta EJB di un server applicazione J2EE specifico. Questa azione gestisce il bilanciamento del carico tra i nodi del cluster.
WebSphere
L'esempio seguente mostra il contenuto di un file jndi.properties utilizzato per connettersi ad AEM Forms distribuito su WebSphere.
 java.naming.factory.initial=com.ibm.websphere.naming.
 WsnInitialContextFactory
 java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810

WebLogic
L'esempio seguente mostra il contenuto di un file jndi.properties utilizzato per connettersi ad AEM Forms distribuito su WebLogic.
 java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
 java.naming.provider.url=t3://appserver1:8001, appserver2:8001

JBoss
L'esempio seguente mostra il contenuto di un file jndi.properties utilizzato per connettersi ad AEM Forms distribuito su JBoss.
 java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
 java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
 appserver3:1099

Consultate l’amministratore per determinare il nome del server applicazione J2EE e il numero di porta.
Consulta anche

Trasmissione di dati ai servizi AEM Forms tramite l'API Java

Le operazioni del servizio AEM Forms generalmente utilizzano o producono documenti PDF. Quando si richiama un servizio, talvolta è necessario trasmettere al servizio un documento PDF (o altri tipi di documento, come i dati XML). Analogamente, talvolta è necessario gestire un documento PDF restituito dal servizio. La classe Java che consente di trasmettere dati ai servizi AEM Forms è com.adobe.idp.Document .
I servizi AEM Forms non accettano un documento PDF come altri tipi di dati, ad esempio un java.io.InputStream oggetto o un array di byte. Un com.adobe.idp.Document oggetto può essere utilizzato anche per trasmettere ai servizi altri tipi di dati, ad esempio dati XML.
Un com.adobe.idp.Document oggetto è di tipo serializzabile Java e può quindi essere passato sopra una chiamata RMI. Il lato ricevente può essere collocato (stesso host, stesso loader di classe), locale (stesso host, diverso loader di classe) o remoto (host diverso). La trasmissione del contenuto del documento è ottimizzata per ogni caso. Ad esempio, se il mittente e il destinatario si trovano sullo stesso host, il contenuto viene trasmesso su un file system locale. In alcuni casi, i documenti possono essere passati in memoria.
A seconda delle dimensioni dell' com.adobe.idp.Document oggetto, i dati vengono memorizzati all'interno dell' com.adobe.idp.Document oggetto o nel file system del server. Eventuali risorse di memorizzazione temporanea occupate dall' com.adobe.idp.Document oggetto vengono rimosse automaticamente al momento dell' com.adobe.idp.Document eliminazione. (Vedere Disposizione degli oggetti documento.)
A volte è necessario conoscere il tipo di contenuto di un com.adobe.idp.Document oggetto prima di poterlo passare a un servizio. Ad esempio, se un'operazione richiede un tipo di contenuto specifico, ad esempio application/pdf , si consiglia di determinare il tipo di contenuto. (Vedere Definizione del tipo di contenuto di un documento .)
L' com.adobe.idp.Document oggetto tenta di determinare il tipo di contenuto utilizzando i dati forniti. Se il tipo di contenuto non può essere recuperato dai dati forniti (ad esempio, quando i dati sono stati forniti come array di byte), impostare il tipo di contenuto. Per impostare il tipo di contenuto, richiamare il com.adobe.idp.Document metodo dell' setContentType . (Vedere Definizione del tipo di contenuto di un documento )
Se i file collaterali risiedono sullo stesso file system, la creazione di un com.adobe.idp.Document oggetto è più rapida. Se i file collaterali risiedono su file system remoti, è necessario eseguire un'operazione di copia, che influisce sulle prestazioni.
Un'applicazione può contenere sia tipi com.adobe.idp.Document di dati che org.w3c.dom.Document tipi. Tuttavia, accertati di qualificare completamente il tipo di org.w3c.dom.Document dati. Per informazioni sulla conversione di un org.w3c.dom.Document oggetto in un com.adobe.idp.Document oggetto, vedere Avvio rapido (modalità EJB): Precompilazione di moduli con layout scorrevoli tramite l'API Java.
Per evitare una perdita di memoria in WebLogic durante l'utilizzo di un com.adobe.idp.Document oggetto, leggere le informazioni del documento in blocchi di almeno 2048 byte. Ad esempio, il codice seguente legge le informazioni del documento in blocchi di 2048 byte:
        // 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();

Consulta anche

Creazione di documenti

Creare un oggetto com.adobe.idp.Document prima di richiamare un'operazione di servizio che richiede un documento PDF (o altri tipi di documento) come valore di input. La com.adobe.idp.Document classe fornisce costrutti che consentono di creare un documento dai seguenti tipi di contenuto:
  • Array a byte
  • Un com.adobe.idp.Document oggetto esistente
  • Un java.io.File oggetto
  • Un java.io.InputStream oggetto
  • Un java.net.URL oggetto

Creazione di un documento basato su un array di byte

Nell'esempio di codice riportato di seguito viene creato un oggetto com.adobe.idp.Document basato su un array di byte.
Creazione di un oggetto Document basato su un array di byte
 Document myPDFDocument = new Document(myByteArray);

Creazione di un documento basato su un altro documento

Nell'esempio di codice riportato di seguito viene creato un com.adobe.idp.Document 'oggetto basato su un altro com.adobe.idp.Document oggetto.
Creazione di un oggetto Document basato su un altro 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);

Creazione di un documento basato su un file

Nell'esempio di codice seguente viene creato un com.adobe.idp.Document oggetto basato su un file PDF denominato map.pdf . Questo file si trova nella radice del disco rigido C. Questo costruttore tenta di impostare il tipo di contenuto MIME dell' com.adobe.idp.Document oggetto utilizzando l'estensione del nome file.
Il com.adobe.idp.Document costruttore che accetta un java.io.File oggetto accetta anche un parametro booleano. Impostando questo parametro su true , l' com.adobe.idp.Document oggetto elimina il file. Questo significa che non è necessario rimuovere il file dopo averlo passato al com.adobe.idp.Document costruttore.
Impostando questo parametro si false mantiene la proprietà del file. L'impostazione di questo parametro su true è più efficiente. Il motivo è che l' com.adobe.idp.Document oggetto può spostare il file direttamente nell'area gestita locale invece di copiarlo (il che è più lento).
Creazione di un oggetto Document basato su un file 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);

Creazione di un documento basato su un oggetto InputStream

Nell'esempio di codice Java riportato di seguito viene creato un com.adobe.idp.Document oggetto basato su un java.io.InputStream oggetto.
Creazione di un documento basato su un oggetto InputStream
 //Create a Document object based on an InputStream object
 InputStream is = new FileInputStream("C:\\Map.pdf");
 Document myPDFDocument = new Document(is);

Creazione di un documento basato su contenuto accessibile da un URL

Nell'esempio di codice Java riportato di seguito viene creato un com.adobe.idp.Document oggetto basato su un file PDF denominato map.pdf . Questo file si trova all'interno di un'applicazione Web denominata WebApp in esecuzione su localhost . Questo costruttore tenta di impostare il tipo di contenuto MIME dell' com.adobe.idp.Document oggetto utilizzando il tipo di contenuto restituito con il protocollo URL.
L'URL fornito all' com.adobe.idp.Document oggetto viene sempre letto sul lato in cui è stato creato l' com.adobe.idp.Document oggetto originale, come illustrato in questo esempio:
     Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));

Il file c:/temp/input.pdf deve trovarsi sul computer client (non sul computer server). Nel computer client viene letto l’URL e viene creato l’ com.adobe.idp.Document oggetto.
Creazione di un documento basato su contenuto accessibile da un 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);

Consulta anche

Gestione dei documenti restituiti

Le operazioni di servizio che restituiscono un documento PDF (o altri tipi di dati come i dati XML) come valore di output restituiscono un com.adobe.idp.Document oggetto. Dopo aver ricevuto un com.adobe.idp.Document oggetto, è possibile convertirlo nei seguenti formati:
  • Un java.io.File oggetto
  • Un java.io.InputStream oggetto
  • Array a byte
La riga di codice seguente converte un com.adobe.idp.Document oggetto in un java.io.InputStream oggetto. Si supponga che myPDFDocument rappresenti un com.adobe.idp.Document oggetto:
     java.io.InputStream resultStream = myDocument.getInputStream();

Analogamente, è possibile copiare il contenuto di un file locale com.adobe.idp.Document eseguendo le seguenti operazioni:
  1. Create a java.io.File object.
  2. Richiamare il com.adobe.idp.Document metodo dell' copyToFile oggetto e passare l' java.io.File oggetto.
Nell'esempio di codice seguente il contenuto di un com.adobe.idp.Document oggetto viene copiato in un file denominato OtherMap.pdf .
Copia del contenuto di un oggetto documento in un file
 File outFile = new File("C:\\AnotherMap.pdf");
 myDocument.copyToFile (outFile);

Consulta anche

Determinazione del tipo di contenuto di un documento

Determinare il tipo MIME di un com.adobe.idp.Document oggetto richiamando il metodo dell' com.adobe.idp.Document oggetto getContentType . Questo metodo restituisce un valore di stringa che specifica il tipo di contenuto dell' com.adobe.idp.Document oggetto. Nella tabella seguente sono descritti i diversi tipi di contenuto restituiti da AEM Forms.
Tipo MIME
Descrizione
application/pdf
documento PDF
application/vnd.adobe.xdp+xml
XML Data Packaging (XDP), utilizzato per i moduli XFA (XML Forms Architecture) esportati
text/xml
Segnalibri, allegati o altri documenti XML
application/vnd.fdf
Formato dati Forms (FDF), utilizzato per i moduli Acrobat esportati
application/vnd.adobe.xfdf
Formato dati XML Forms (XFDF), utilizzato per i moduli Acrobat esportati
application/rdf+xml
Formato dati RTF e XML
application/octet-stream
Formato dati generico
NULL
Tipo MIME non specificato
L'esempio di codice seguente determina il tipo di contenuto di un com.adobe.idp.Document oggetto.
Determinazione del tipo di contenuto di un oggetto 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);

Consulta anche

Disposizione degli oggetti documento

Se non è più necessario un Document oggetto, è consigliabile eliminarlo richiamandone il dispose metodo. Ogni Document oggetto utilizza un descrittore di file e fino a 75 MB di spazio RAM sulla piattaforma host dell'applicazione. Se un Document oggetto non è eliminato, il processo di raccolta Java Garage lo dispone. Tuttavia, eliminando prima il metodo dispose , è possibile liberare la memoria occupata dall' Document oggetto.
Consulta anche

Chiamata di un servizio tramite una libreria client Java

Le operazioni del servizio AEM Forms possono essere invocate utilizzando l'API fortemente tipizzata di un servizio, nota come libreria client Java. Una libreria client Java è un insieme di classi concrete che forniscono l'accesso ai servizi distribuiti nel contenitore di servizi. È possibile creare un'istanza di un oggetto Java che rappresenta il servizio da richiamare invece di creare un InvocationRequest oggetto utilizzando l'API Invocation. L'API Invocation viene utilizzata per richiamare i processi, ad esempio quelli di lunga durata, creati in Workbench. (Vedete Richiamo Di Processi Lunghi Orientati All’Umano.)
Per eseguire un'operazione di servizio, richiamare un metodo che appartiene all'oggetto Java. Una libreria client Java contiene metodi che in genere associano uno a uno con le operazioni del servizio. Quando utilizzate una libreria client Java, impostate le proprietà di connessione richieste. (Vedere Impostazione delle proprietà di connessione.)
Dopo aver impostato le proprietà di connessione, creare un oggetto ServiceClientFactory utilizzato per creare un'istanza di un oggetto Java che consenta di richiamare un servizio. Ogni servizio con una libreria client Java ha un oggetto client corrispondente. Ad esempio, per richiamare il servizio Repository, creare un ResourceRepositoryClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto. L'oggetto ServiceClientFactory è responsabile della gestione delle impostazioni di connessione necessarie per richiamare i servizi AEM Forms.
Anche se ottenere un ServiceClientFactory è in genere veloce, alcuni sovraccarichi sono coinvolti quando la fabbrica viene prima utilizzato. Questo oggetto è ottimizzato per il riutilizzo e pertanto, quando possibile, utilizza lo stesso ServiceClientFactory oggetto quando si creano più oggetti client Java. Ovvero, non creare un ServiceClientFactory oggetto separato per ciascun oggetto libreria client creato.
È disponibile un'impostazione di User Manager che controlla la durata dell'asserzione SAML all'interno dell' com.adobe.idp.Context oggetto che influisce sull' ServiceClientFactory oggetto. Questa impostazione controlla tutti i tempi di vita del contesto di autenticazione in AEM Forms, incluse tutte le chiamate eseguite utilizzando l'API Java. Per impostazione predefinita, il periodo di tempo in cui un ServiceCleintFactory oggetto può essere utilizzato è di due ore.
Per spiegare come richiamare un servizio utilizzando l'API Java, viene richiamata l' writeResource operazione del servizio Repository. Questa operazione consente di inserire una nuova risorsa nella directory archivio.
È possibile richiamare il servizio Repository utilizzando una libreria client Java ed eseguendo i seguenti passaggi:
  1. Includete file JAR client, ad esempio adobe-repository-client.jar, nel percorso di classe del progetto Java. Per informazioni sulla posizione di questi file, consultate Inclusione di file libreria Java AEM Forms.
  2. Impostare le proprietà di connessione necessarie per richiamare un servizio.
  3. Creare un ServiceClientFactory oggetto richiamando il ServiceClientFactory metodo statico dell' createInstance oggetto e passando l'oggetto java.util.Properties che contiene le proprietà di connessione.
  4. Creare un ResourceRepositoryClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto. Utilizzare l' ResourceRepositoryClient oggetto per richiamare le operazioni del servizio Repository.
  5. Creare un RepositoryInfomodelFactoryBean oggetto utilizzando il relativo costruttore e passare null . Questo oggetto consente di creare un Resource oggetto che rappresenta il contenuto aggiunto alla directory archivio.
  6. Creare un Resource oggetto richiamando il metodo dell' RepositoryInfomodelFactoryBean oggetto newImage e passando i seguenti valori:
    • Un valore ID univoco specificando new Id() .
    • Un valore UUID univoco specificando new Lid() .
    • Nome della risorsa. È possibile specificare il nome del file XDP.
    Inserite il valore restituito in Resource .
  7. Creare un ResourceContent oggetto richiamando il RepositoryInfomodelFactoryBean metodo dell' newImage oggetto e proiettando il valore restituito in ResourceContent . Questo oggetto rappresenta il contenuto aggiunto alla directory archivio.
  8. Creare un com.adobe.idp.Document oggetto passando un java.io.FileInputStream oggetto che memorizza il file XDP da aggiungere alla directory archivio. Vedere Creazione di un documento basato su un oggetto InputStream.
  9. Aggiungere il contenuto dell' com.adobe.idp.Document oggetto all' ResourceContent oggetto richiamando il metodo dell' ResourceContent oggetto setDataDocument . Passate l' com.adobe.idp.Document oggetto.
  10. Impostare il tipo MIME del file XDP da aggiungere all'archivio richiamando il ResourceContent metodo dell'oggetto e passando setMimeType application/vnd.adobe.xdp+xml .
  11. Aggiungete il contenuto dell' ResourceContent oggetto all' Resource oggetto richiamando il metodo Resource ‘s setContent dell'oggetto e passando l' ResourceContent oggetto.
  12. Aggiungete una descrizione della risorsa richiamando il Resource metodo ‘s setDescription e passando un valore di stringa che rappresenta una descrizione della risorsa.
  13. Aggiungere la struttura del modulo all'archivio richiamando il metodo dell' ResourceRepositoryClient oggetto writeResource e passando i valori seguenti:
    • Valore stringa che specifica il percorso della raccolta di risorse contenente la nuova risorsa
    • L' Resource oggetto creato
Consulta anche

Richiamo di un processo di breve durata tramite l'API di incitamento

Potete richiamare un processo di breve durata utilizzando l'API Java Invocation. Quando si richiama un processo di breve durata utilizzando l'API di vocazione, i valori dei parametri richiesti vengono passati utilizzando un java.util.HashMap oggetto. Affinché ogni parametro passi a un servizio, richiamate il metodo dell' java.util.HashMap oggetto put e specificate la coppia nome-valore richiesta dal servizio per eseguire l'operazione specificata. Specificate il nome esatto dei parametri che appartengono al processo di breve durata.
Per informazioni su come richiamare un processo di lunga durata, vedere Richiamo di processi a lunga durata basati sull’uomo.
La discussione qui verte sull'utilizzo dell'API di vocazione per richiamare il seguente processo di breve durata di AEM Forms denominato MyApplication/EncryptDocument .
Questo processo non è basato su un processo AEM Forms esistente. Per seguire l'esempio di codice, creare un processo denominato MyApplication/EncryptDocument utilizzando Workbench. (Vedere Uso di Workbench .)
Quando viene richiamato, questo processo esegue le azioni seguenti:
  1. Ottiene il documento PDF non protetto passato al processo. Questa azione è basata sull' SetValue operazione. Il parametro di input per questo processo è una variabile di document processo denominata inDoc .
  2. Cifra il documento PDF con una password. Questa azione è basata sull' PasswordEncryptPDF operazione. Il documento PDF crittografato con password viene restituito in una variabile di processo denominata outDoc .

Richiamare il processo MyApplication/EncryptDocument a breve termine utilizzando l'API di chiamata Java

Richiama il processo MyApplication/EncryptDocument di breve durata utilizzando l'API di chiamata Java:
  1. Includete file JAR client, ad esempio adobe-livecycle-client.jar, nel percorso di classe del progetto Java. (consultate Inclusione di file libreria Java AEM Forms).
  2. Creare un ServiceClientFactory oggetto che contenga proprietà di connessione. (Vedere Impostazione delle proprietà di connessione.)
  3. Creare un ServiceClient oggetto utilizzando il relativo costruttore e passando l' ServiceClientFactory oggetto. Un ServiceClient oggetto consente di richiamare un'operazione del servizio. Gestisce attività quali l'individuazione, l'invio e il routing delle richieste di chiamata.
  4. Creare un java.util.HashMap oggetto utilizzando il relativo costruttore.
  5. Richiama il metodo dell’ java.util.HashMap oggetto put per ogni parametro di input da passare al processo longevo. Poiché il processo di MyApplication/EncryptDocument breve durata richiede un parametro di input di tipo Document``put , è necessario richiamare il metodo solo una volta, come illustrato nell'esempio seguente.
     //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. Creare un InvocationRequest oggetto richiamando il metodo dell' ServiceClientFactory oggetto createInvocationRequest e passando i seguenti valori:
    • Un valore di stringa che specifica il nome del processo longevo da richiamare. Per richiamare il MyApplication/EncryptDocument processo, specificate MyApplication/EncryptDocument .
    • Un valore di stringa che rappresenta il nome dell'operazione di processo. In genere, il nome di un’operazione di processo di breve durata è invoke .
    • L' java.util.HashMap oggetto che contiene i valori dei parametri richiesti dall'operazione del servizio.
    • Un valore booleano che specifica true , che crea una richiesta sincrona (questo valore è applicabile per richiamare un processo di breve durata).
  7. Inviate la richiesta di chiamata al servizio richiamando il metodo dell' ServiceClient oggetto invoke e passando l' InvocationRequest oggetto. Il invoke metodo restituisce un InvocationReponse oggetto.
    Un processo longevo può essere invocato trasmettendo il valore false come quarto parametro del createInvocationRequest metodo. Passando il valore false viene creata una richiesta asincrona.
  8. Recuperare il valore restituito dal processo richiamando il metodo dell' InvocationReponse oggetto getOutputParameter e passando un valore di stringa che specifica il nome del parametro di output. In questa situazione, specificate outDoc ( outDoc è il nome del parametro di output per il MyApplication/EncryptDocument processo). Inserite il valore restituito in Document , come illustrato nell'esempio seguente.
     InvocationResponse response = myServiceClient.invoke(request);
     Document encryptDoc = (Document) response.getOutputParameter("outDoc");
    
    
  9. Create un java.io.File oggetto e accertatevi che l'estensione del file sia .pdf.
  10. Richiamare il metodo dell' com.adobe.idp.Document oggetto copyToFile per copiare il contenuto dell' com.adobe.idp.Document oggetto nel file. Assicurarsi di utilizzare l' com.adobe.idp.Document oggetto restituito dal getOutputParameter metodo.
Consulta anche