Richiamo di AEM Forms tramite l’API Java

AEM Forms può essere richiamato utilizzando l’API Java di AEM Forms. Quando utilizzi l’API Java di AEM Forms, puoi utilizzare l’API di richiamo 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.

Le API di richiamo sono classi che si trovano nel pacchetto com.adobe.idp.dsc . Utilizzando queste classi, puoi inviare una richiesta di chiamata direttamente a un servizio e gestire una risposta di chiamata restituita. Utilizza l’API di richiamo per invocare processi di breve durata o di lunga durata creati utilizzando Workbench.

Il modo consigliato per richiamare un servizio in modo programmatico è quello di utilizzare una libreria client Java corrispondente al servizio anziché l’API di chiamata. Ad esempio, per richiamare il servizio Crittografia, utilizzare la libreria client del servizio Crittografia. Per eseguire un'operazione del servizio di cifratura, richiamare un metodo appartenente all'oggetto client del servizio di cifratura. È possibile crittografare un documento PDF con una password richiamando il metodo encryptPDFUsingPassword dell'oggetto EncryptionServiceClient.

L’API Java supporta le seguenti funzioni:

  • Protocollo di trasporto RMI per chiamata remota
  • Trasporto VM per chiamata locale
  • SOAP per chiamata remota
  • Autenticazione diversa, ad esempio nome utente e password
  • Richieste di chiamata sincrone e asincrona

Consulta anche

Inclusione dei file libreria Java di AEM Forms

Richiamo dei processi a lunga durata incentrati sull'uomo

Richiamo di AEM Forms tramite i servizi web

Impostazione delle proprietà di connessione

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

Richiamo di un servizio tramite una libreria client Java

Richiamare un processo di breve durata utilizzando l’API di richiamo

Creazione di un'applicazione web Java che richiama un processo longevo incentrato sull'uomo

Inclusione dei file libreria Java di AEM Forms

Per richiamare un servizio AEM Forms a livello di programmazione utilizzando l’API Java, includi i file di libreria richiesti (file JAR) nel percorso di classe del progetto Java. I file JAR inclusi nel percorso di classe dell'applicazione client dipendono da diversi fattori:

  • 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.)
NOTA

(Solo chiavi in mano) Avvia il server AEM Forms con il comando standalone.bat -b <Server IP> -c lc_turnkey.xml per specificare un IP del server per EJB.

  • Server dell'applicazione J2EE su cui viene distribuito AEM Forms.

File JAR specifici del 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 classe di un'applicazione client Java.

<>directory di installazione>/sdk/client-libs/common

adobe-usermanager-client.jar

Deve essere sempre incluso nel percorso classe di un'applicazione client Java.

<>directory di installazione>/sdk/client-libs/common

adobe-utilities.jar

Deve essere sempre incluso nel percorso classe di un'applicazione client Java.

<>directory di installazione>/sdk//client-libs/<app server="">

adobe-applicationmanager-client-sdk.jar

Richiesto per richiamare il servizio Application Manager.

<>directory di installazione>/sdk/client-libs/common

adobe-assembler-client.jar

Richiesto 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

Richiesto 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

Richiesto per richiamare il servizio Gestione documenti.

<>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

Richiesto 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 Acrobat Reader DC extensions.

<>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

Obbligatorio 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 Firma.

<>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

Richiesto per richiamare il servizio Trust Store.

<>directory di installazione>/sdk/client-libs/common

Modalità di connessione e file JAR dell'applicazione J2EE

Nella tabella seguente sono elencati i file JAR che dipendono dalla modalità di connessione e il server dell'applicazione J2EE su cui viene distribuito AEM Forms.

</thead align="left">

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 è distribuito su JBoss Application Server, includi questo file JAR.

Le classi richieste non verranno trovate dal classloader se jboss-client.jar e i jar a cui si fa riferimento non sono co-localizzati.

Directory lib client JBoss

Se distribuisci l’applicazione client sullo stesso server applicativo J2EE, non è necessario includere questo file.

wlclient.jar

se AEM Forms è implementato su BEA WebLogic Server®, includi questo file JAR.

Directory lib specifica per WebLogic

Se distribuisci l’applicazione client sullo stesso server applicativo 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 è distribuito su WebSphere Application Server, includi questi file JAR.

  • (com.ibm.ws.webservices.thinclient_6.1.0.jar è necessario per la chiamata al servizio Web).

Directory lib specifica per WebSphere ([WAS_HOME]/runtimes)

Se si distribuisce l'applicazione client sullo stesso server applicativo J2EE, non è necessario includere questi file.

Richiamo degli scenari

La tabella seguente specifica gli scenari di chiamata ed elenca i file JAR necessari per richiamare AEM Forms con successo.

</thead align="left"> xmp-uti

Servizi

Modalità di incitazione

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 di 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 di 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 esegui l’aggiornamento da LiveCycle ad AEM Forms, si consiglia di includere i file JAR di AEM Forms nel percorso di classe del progetto Java. Ad esempio, se utilizzi servizi come il servizio Rights Management, incontri un problema di compatibilità se non includi file JAR AEM Forms nel percorso della classe.

Presupponendo che tu stia eseguendo l’aggiornamento ad AEM Forms. Per utilizzare un'applicazione Java che richiama il servizio Rights Management, includi le versioni AEM Forms dei seguenti file JAR:

  • adobe-rightsmanagement-client.jar
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar

Consulta anche

Richiamo di AEM Forms tramite l’API Java

Impostazione delle proprietà di connessione

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

Richiamo di un servizio tramite una libreria client Java

Impostazione delle proprietà di connessione

È possibile impostare le proprietà di connessione 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é specificare la modalità di connessione e i valori di autenticazione. I valori di autenticazione sono necessari se la sicurezza del servizio è abilitata. Tuttavia, se la sicurezza 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 da un server applicativo 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 tra i limiti del firewall. Se né una dipendenza da un server applicazioni J2EE né un firewall sono un problema, si consiglia di utilizzare la modalità EJB.

Per richiamare correttamente un servizio AEM Forms, imposta le seguenti proprietà di connessione:

  • DSC_DEFAULT_EJB_ENDPOINT: se utilizzi la modalità di connessione EJB, questo valore rappresenta l’URL del server dell’applicazione J2EE in cui viene distribuito AEM Forms. Per richiamare AEM Forms in remoto, specifica il nome del server dell'applicazione J2EE in cui viene distribuito AEM Forms. Se l'applicazione client si trova sullo stesso server applicativo 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, specifica il nome del server dell'applicazione J2EE in cui viene distribuito AEM Forms. Se l’applicazione client si trova sullo stesso server applicativo 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. Allo stesso modo, se il server dell'applicazione J2EE è WebLogic, utilizza la porta 7001. Questi valori sono valori di porta predefiniti. Se si modifica il valore della porta, utilizzare il numero di porta applicabile.)
  • DSC_TRANSPORT_PROTOCOL: Se utilizzi la modalità di connessione EJB, specifica 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 in cui viene distribuito AEM Forms. I valori validi sono JBoss, WebSphere, WebLogic.

    • Se si imposta questa proprietà di connessione su WebSphere, il valore java.naming.factory.initial viene impostato su com.ibm.ws.naming.util.WsnInitCtxFactory.
    • Se si imposta questa proprietà di connessione su WebLogic, il valore java.naming.factory.initial viene impostato su weblogic.jndi.WLInitialContextFactory.
    • Analogamente, se si imposta questa proprietà di connessione su JBoss, il valore java.naming.factory.initial viene impostato su org.jnp.interfaces.NamingContextFactory.
    • Se non si desidera utilizzare i valori predefiniti, è possibile impostare la proprietà java.naming.factory.initial su un valore che soddisfa le proprie esigenze.
    NOTA

    Invece di utilizzare una stringa per impostare la proprietà di connessione DSC_SERVER_TYPE, è possibile utilizzare un membro statico della classe ServiceClientFactoryProperties. È 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 del modulo di AEM. Affinché un utente possa richiamare correttamente un servizio AEM Forms, deve disporre del 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 si tenta 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 della richiesta SOAP è di 1200000 millisecondi (20 minuti). A volte, una richiesta può richiedere più tempo per completare l’operazione. Ad esempio, una richiesta SOAP che recupera un set di record di grandi dimensioni può richiedere un limite di timeout più lungo. È possibile utilizzare ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT per aumentare il limite di timeout della chiamata di richiesta 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 oggetto java.util.Properties utilizzando il relativo costruttore.

  2. Per impostare la proprietà di connessione DSC_DEFAULT_EJB_ENDPOINT, richiamare il metodo java.util.Properties dell'oggetto setProperty e passare i seguenti valori:

    • Valore di enumerazione ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
    • Valore stringa che specifica l'URL del server dell'applicazione J2EE che ospita AEM Forms
    NOTA

    Se si utilizza la modalità di connessione SOAP, specificare il valore di enumerazione ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT anziché il valore di enumerazione ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT.

  3. Per impostare la proprietà di connessione DSC_TRANSPORT_PROTOCOL, richiamare il metodo java.util.Properties dell'oggetto setProperty e passare i seguenti valori:

    • Valore di enumerazione ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
    • Valore di enumerazione ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
    NOTA

    Se si utilizza la modalità di connessione SOAP, specificare il valore di enumerazione ServiceClientFactoryProperties.DSC_SOAP_PROTOCOLanziché il valore di enumerazione ServiceClientFactoryProperties.DSC_EJB_PROTOCOL.

  4. Per impostare la proprietà di connessione DSC_SERVER_TYPE, richiamare il metodo java.util.Properties dell'oggetto setProperty e passare i seguenti valori:

    • Il valore di enumerazione ServiceClientFactoryProperties.DSC_SERVER_TYPE

    • Valore stringa che specifica il server applicazioni J2EE che ospita AEM Forms (ad esempio, se AEM Forms è distribuito su JBoss, specificare JBoss).

      1. Per impostare la proprietà di connessione DSC_CREDENTIAL_USERNAME, richiamare il metodo java.util.Properties dell'oggetto setProperty e passare i seguenti valori:
    • Valore di enumerazione ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME

    • Valore stringa che specifica il nome utente necessario per richiamare AEM Forms

      1. Per impostare la proprietà di connessione DSC_CREDENTIAL_PASSWORD, richiamare il metodo java.util.Properties dell'oggetto setProperty e passare i seguenti valori:
    • Valore di enumerazione ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD

    • 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 distribuito su JBoss e utilizzando 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 distribuito su WebLogic e utilizzando 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 distribuito su WebSphere e utilizzando 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 distribuito 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");
NOTA

Se selezioni la modalità di connessione SOAP, assicurati 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 distribuito su 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");
NOTA

Tutti i Java Quick Starts associati alla programmazione con AEM Forms mostrano le impostazioni di connessione EJB e SOAP.

Impostazione della modalità di connessione SOAP con limite di timeout della richiesta personalizzato

 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 oggetto com.adobe.idp.Context per richiamare un servizio AEM Forms con un utente autenticato (l'oggetto com.adobe.idp.Context rappresenta un utente autenticato). Quando si utilizza un oggetto com.adobe.idp.Context, non è necessario impostare le proprietà DSC_CREDENTIAL_USERNAME o DSC_CREDENTIAL_PASSWORD. È possibile ottenere un oggetto com.adobe.idp.Context durante l'autenticazione degli utenti utilizzando il metodo AuthenticationManagerServiceClient dell'oggetto authenticate.

Il metodo authenticate restituisce un oggetto AuthResult contenente i risultati dell'autenticazione. È possibile creare un oggetto com.adobe.idp.Context richiamandone il costruttore. Quindi, richiamare il metodo initPrincipal dell'oggetto com.adobe.idp.Context e passare l'oggetto AuthResult, come illustrato nel codice seguente:

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

Invece di impostare le proprietà DSC_CREDENTIAL_USERNAME o DSC_CREDENTIAL_PASSWORD, è possibile richiamare il metodo ServiceClientFactory dell'oggetto setContext e passare l'oggetto com.adobe.idp.Context. Quando utilizzi un utente di moduli AEM per richiamare un servizio, assicurati che abbia il ruolo Services User richiesto per richiamare un servizio AEM Forms.

L'esempio di codice seguente mostra come utilizzare un oggetto com.adobe.idp.Context all'interno delle impostazioni di connessione utilizzate per creare un oggetto 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://<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);
NOTA

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

Richiamo degli scenari

In questa sezione sono descritti i seguenti scenari di chiamata:

  • Un'applicazione client in esecuzione nella propria macchina virtuale Java (JVM) richiama un'istanza autonoma di AEM Forms.
  • Un'applicazione client in esecuzione nella propria JVM richiama le istanze 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 nella propria JVM e richiama i servizi AEM Forms.

NOTA

Questo scenario è lo scenario di richiamo su cui si basano tutti gli avvii rapidi.

Applicazione client che richiama istanze AEM Forms in cluster

Il diagramma seguente mostra un'applicazione client in esecuzione nella propria JVM e che richiama le istanze AEM Forms situate in un cluster.

Questo scenario è simile a un'applicazione client che richiama un'istanza autonoma di AEM Forms. Tuttavia, l’URL del provider è diverso. Se un'applicazione client desidera connettersi a un server applicativo J2EE specifico, l'applicazione deve modificare l'URL per fare riferimento al server applicativo J2EE specifico.

Non è consigliabile fare riferimento a un server applicazioni J2EE specifico perché la connessione tra l'applicazione client e AEM Forms viene terminata se il server applicazioni si arresta. È consigliabile che l'URL del provider faccia riferimento a un gestore JNDI a livello di cella, invece di un server applicativo 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 applicativo 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
NOTA

Rivolgersi all'amministratore per determinare il nome e il numero di porta dell'applicazione J2EE.

Consulta anche

Inclusione dei file libreria Java di AEM Forms

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

Richiamo di un servizio tramite una libreria client Java

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

Le operazioni del servizio AEM Forms in genere consumano o producono documenti PDF. Quando si richiama un servizio, a volte è necessario passare al servizio un documento PDF (o altri tipi di documento come i dati XML). Allo stesso modo, a volte è necessario gestire un documento PDF restituito dal servizio. La classe Java che consente di trasmettere dati a e dai servizi AEM Forms è com.adobe.idp.Document.

I servizi AEM Forms non accettano un documento PDF come altri tipi di dati, ad esempio un oggetto java.io.InputStream o un array di byte. Un oggetto com.adobe.idp.Document può essere utilizzato anche per trasmettere ai servizi altri tipi di dati, ad esempio i dati XML.

Un oggetto com.adobe.idp.Document è un tipo serializzabile Java, quindi può essere trasmesso sopra una chiamata RMI. Il lato ricevente può essere collocato (lo stesso host, lo stesso caricatore di classe), locale (lo stesso host, un caricatore di classe diverso) o remoto (un host diverso). Il passaggio del contenuto del documento è ottimizzato 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'oggetto com.adobe.idp.Document, i dati vengono trasferiti all'interno dell'oggetto com.adobe.idp.Document o memorizzati nel file system del server. Tutte le risorse di archiviazione temporanea occupate dall'oggetto com.adobe.idp.Document vengono rimosse automaticamente al momento dell'eliminazione di com.adobe.idp.Document. (Vedere Disposizione degli oggetti documento.)

A volte è necessario conoscere il tipo di contenuto di un oggetto com.adobe.idp.Document prima di poterlo passare a un servizio. Ad esempio, se un’operazione richiede un tipo di contenuto specifico, ad esempio application/pdf, è consigliabile determinare il tipo di contenuto. (Consultare Determinazione del tipo di contenuto di un documento.)

L'oggetto com.adobe.idp.Document tenta di determinare il tipo di contenuto utilizzando i dati forniti. Se non è possibile recuperare il tipo di contenuto dai dati forniti (ad esempio, quando i dati sono stati forniti come matrice di byte), impostare il tipo di contenuto. Per impostare il tipo di contenuto, richiamare il metodo setContentType dell’oggetto com.adobe.idp.Document. (Consultare Determinazione del tipo di contenuto di un documento)

Se i file collaterali risiedono sullo stesso file system, la creazione di un oggetto com.adobe.idp.Document è più veloce. Se i file collaterali risiedono su file system remoti, è necessario eseguire un'operazione di copia che influisce sulle prestazioni.

Un'applicazione può contenere sia i tipi di dati com.adobe.idp.Document che org.w3c.dom.Document. Tuttavia, assicurati di qualificare completamente il tipo di dati org.w3c.dom.Document. Per informazioni sulla conversione di un oggetto org.w3c.dom.Document in un oggetto com.adobe.idp.Document, vedere Avvio rapido (modalità EJB): Precompilazione di Forms con layout fluidi tramite l'API Java.

NOTA

Per evitare una perdita di memoria in WebLogic durante l'utilizzo di un oggetto com.adobe.idp.Document, leggere le informazioni del documento in blocchi pari o inferiori a 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

Richiamo di AEM Forms tramite l’API Java

Impostazione delle proprietà di connessione

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 documenti) come valore di input. La classe com.adobe.idp.Document fornisce costruttori che consentono di creare un documento dai seguenti tipi di contenuto:

  • Matrice a byte
  • Un oggetto com.adobe.idp.Document esistente
  • Un oggetto java.io.File
  • Un oggetto java.io.InputStream
  • Un oggetto java.net.URL

Creazione di un documento basato su una matrice di byte

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

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 oggetto com.adobe.idp.Document 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'oggetto com.adobe.idp.Document utilizzando l'estensione del nome del file.

Anche il costruttore com.adobe.idp.Document che accetta un oggetto java.io.File accetta un parametro booleano. Impostando questo parametro su true, l'oggetto com.adobe.idp.Document elimina il file. Questa azione significa che non è necessario rimuovere il file dopo averlo passato al costruttore com.adobe.idp.Document .

Se si imposta questo parametro su false si mantiene la proprietà del file. L'impostazione di questo parametro su true è più efficiente. Il motivo è che l'oggetto com.adobe.idp.Document può spostare il file direttamente nell'area gestita locale invece di copiarlo (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 seguente viene creato un oggetto com.adobe.idp.Document basato su un oggetto java.io.InputStream.

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 sul contenuto accessibile da un URL

Nell'esempio di codice Java seguente viene creato un oggetto com.adobe.idp.Document 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’oggetto com.adobe.idp.Document utilizzando il tipo di contenuto restituito con il protocollo URL.

L'URL fornito all'oggetto com.adobe.idp.Document viene sempre letto sul lato in cui viene creato l'oggetto com.adobe.idp.Document 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). Il computer client è il punto in cui viene letto l'URL e in cui è stato creato l'oggetto com.adobe.idp.Document .

Creazione di un documento basato sul 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

Richiamo di AEM Forms tramite l’API Java

Impostazione delle proprietà di connessione

Gestione dei documenti restituiti

Le operazioni del servizio che restituiscono un documento PDF (o altri tipi di dati come i dati XML) come valore di output restituiscono un oggetto com.adobe.idp.Document. Dopo aver ricevuto un oggetto com.adobe.idp.Document, è possibile convertirlo nei seguenti formati:

  • Un oggetto java.io.File
  • Un oggetto java.io.InputStream
  • Matrice a byte

La riga di codice seguente converte un oggetto com.adobe.idp.Document in un oggetto java.io.InputStream. Supponiamo che myPDFDocument rappresenti un oggetto com.adobe.idp.Document:

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

Allo stesso modo, è possibile copiare il contenuto di un com.adobe.idp.Document in un file locale eseguendo le seguenti attività:

  1. Creare un oggetto java.io.File.
  2. Richiamare il metodo copyToFile dell'oggetto com.adobe.idp.Document e passare l'oggetto java.io.File.

Nell'esempio di codice seguente il contenuto di un oggetto com.adobe.idp.Document viene copiato in un file denominato AnotherMap.pdf.

Copia del contenuto di un oggetto documento in un file

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

Consulta anche

Richiamo di AEM Forms tramite l’API Java

Impostazione delle proprietà di connessione

Determinazione del tipo di contenuto di un documento

Determina il tipo MIME di un oggetto com.adobe.idp.Document richiamando il metodo com.adobe.idp.Document dell'oggetto getContentType. Questo metodo restituisce un valore stringa che specifica il tipo di contenuto dell'oggetto com.adobe.idp.Document. La tabella seguente descrive 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 XML Forms Architecture (XFA) 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

XML Forms Data Format (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

Nell'esempio di codice seguente viene determinato il tipo di contenuto di un oggetto com.adobe.idp.Document.

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

Richiamo di AEM Forms tramite l’API Java

Impostazione delle proprietà di connessione

Disposizione degli oggetti documento

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

Consulta anche

Richiamo di AEM Forms tramite l’API Java

Inclusione dei file libreria Java di AEM Forms

Richiamo di un servizio tramite una libreria client Java

Richiamo di un servizio tramite una libreria client Java

Le operazioni del servizio AEM Forms possono essere richiamate 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 oggetto InvocationRequest utilizzando l'API di vocazione. L’API di vocazione viene utilizzata per richiamare i processi creati in Workbench, ad esempio quelli di lunga durata. (Vedere Richiamo di processi a lunga durata incentrati sull'uomo.)

Per eseguire un'operazione del servizio, richiamare un metodo che appartiene all'oggetto Java. Una libreria client Java contiene metodi che in genere mappano uno a uno con le operazioni del servizio. Quando utilizzi una libreria client Java, imposta 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 consente 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 oggetto ResourceRepositoryClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory . L'oggetto ServiceClientFactory è responsabile della manutenzione delle impostazioni di connessione necessarie per richiamare i servizi AEM Forms.

Anche se ottenere un ServiceClientFactory è in genere veloce, alcuni costi comuni sono coinvolti quando la fabbrica viene utilizzata per la prima volta. Questo oggetto è ottimizzato per il riutilizzo e, quindi, quando possibile, utilizza lo stesso oggetto ServiceClientFactory durante la creazione di più oggetti client Java. In altre parole, non creare un oggetto ServiceClientFactory separato per ogni oggetto libreria client creato.

È presente un'impostazione User Manager che controlla la durata dell'asserzione SAML all'interno dell'oggetto com.adobe.idp.Context che influisce sull'oggetto ServiceClientFactory. Questa impostazione controlla tutti i tempi di vita del contesto di autenticazione in AEM Forms, comprese tutte le chiamate eseguite utilizzando l'API Java. Per impostazione predefinita, il periodo di tempo in cui è possibile utilizzare un oggetto ServiceCleintFactory è di due ore.

NOTA

Per spiegare come richiamare un servizio utilizzando l’API Java, viene avviata l’operazione writeResource del servizio Repository. Questa operazione inserisce una nuova risorsa nell’archivio.

Puoi richiamare il servizio Repository utilizzando una libreria client Java ed eseguendo i seguenti passaggi:

  1. Includi file JAR client, come adobe-repository-client.jar, nel percorso di classe del progetto Java. Per informazioni sulla posizione di questi file, consulta Inclusione dei file della libreria Java di AEM Forms.

  2. Imposta le proprietà di connessione necessarie per richiamare un servizio.

  3. Creare un oggetto ServiceClientFactory richiamando il metodo statico createInstance dell'oggetto ServiceClientFactory e passando l'oggetto java.util.Properties che contiene le proprietà di connessione.

  4. Creare un oggetto ResourceRepositoryClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory. Utilizzare l'oggetto ResourceRepositoryClient per richiamare le operazioni del servizio Repository.

  5. Creare un oggetto RepositoryInfomodelFactoryBean utilizzando il relativo costruttore e passare null. Questo oggetto ti consente di creare un oggetto Resource che rappresenta il contenuto aggiunto all’archivio.

  6. Creare un oggetto Resource richiamando il metodo RepositoryInfomodelFactoryBean dell'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.

    Imposta il valore restituito su Resource.

  7. Creare un oggetto ResourceContent richiamando il metodo RepositoryInfomodelFactoryBean dell'oggetto newImage e impostando il valore restituito su ResourceContent. Questo oggetto rappresenta il contenuto aggiunto alla directory archivio.

  8. Crea un oggetto com.adobe.idp.Document passando un oggetto java.io.FileInputStream che memorizza il file XDP da aggiungere all'archivio. (Vedere Creazione di un documento basato su un oggetto InputStream.)

  9. Aggiungere il contenuto dell'oggetto com.adobe.idp.Document all'oggetto ResourceContent richiamando il metodo ResourceContent dell'oggetto setDataDocument. Passa l'oggetto com.adobe.idp.Document .

  10. Imposta il tipo MIME del file XDP da aggiungere all’archivio richiamando il metodo ResourceContent dell’oggetto setMimeType e passando application/vnd.adobe.xdp+xml.

  11. Aggiungere il contenuto dell'oggetto ResourceContent all'oggetto Resource richiamando il metodo Resource s setContent e passando l'oggetto ResourceContent.

  12. Aggiungi una descrizione della risorsa richiamando il metodo Resource object 's setDescription e passando un valore stringa che rappresenta una descrizione della risorsa.

  13. Aggiungere la struttura del modulo all’archivio richiamando il metodo writeResource dell’oggetto ResourceRepositoryClient e passando i seguenti valori:

    • Valore stringa che specifica il percorso della raccolta di risorse contenente la nuova risorsa
    • L'oggetto Resource creato

Consulta anche

Avvio rapido (modalità EJB): Scrittura di una risorsa tramite l’API Java

Richiamo di AEM Forms tramite l’API Java

Inclusione dei file libreria Java di AEM Forms

Richiamare un processo di breve durata utilizzando l’API di richiamo

Puoi richiamare un processo di breve durata utilizzando l’API Java Invocation. Quando invochi un processo di breve durata utilizzando l'API di richiamo, trasmetti i valori dei parametri richiesti utilizzando un oggetto java.util.HashMap . Affinché ogni parametro passi a un servizio, richiama il metodo put dell'oggetto java.util.HashMap e specifica la coppia nome-valore richiesta dal servizio per eseguire l'operazione specificata. Specifica il nome esatto dei parametri che appartengono al processo di breve durata.

NOTA

Per informazioni sull'avvio di un processo di lunga durata, vedere Richiamo di processi a lunga durata incentrati sull'uomo.

La discussione qui riguarda l'utilizzo dell'API di vocazione per richiamare il seguente processo AEM Forms di breve durata denominato MyApplication/EncryptDocument.

NOTA

Questo processo non è basato su un processo AEM Forms esistente. Per seguire l’esempio di codice, crea un processo denominato MyApplication/EncryptDocument utilizzando Workbench. (Vedere Uso di Workbench.)

Quando si richiama questo processo, vengono eseguite le azioni seguenti:

  1. Ottiene il documento PDF non protetto passato al processo. Questa azione è basata sull'operazione SetValue . Il parametro di input per questo processo è una variabile di processo document denominata inDoc.
  2. Cifra il documento PDF con una password. Questa azione è basata sull'operazione PasswordEncryptPDF . Il documento PDF crittografato con password viene restituito in una variabile di processo denominata outDoc.

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

Richiama il processo di breve durata MyApplication/EncryptDocument utilizzando l'API di chiamata Java:

  1. Includi file JAR client, come adobe-livecycle-client.jar, nel percorso di classe del progetto Java. (Consulta Inclusione dei file della libreria Java di AEM Forms.)

  2. Creare un oggetto ServiceClientFactory contenente le proprietà di connessione. (Vedere Impostazione delle proprietà di connessione.)

  3. Creare un oggetto ServiceClient utilizzando il relativo costruttore e passando l'oggetto ServiceClientFactory. Un oggetto ServiceClient consente di richiamare un'operazione di servizio. Gestisce attività quali l'individuazione, l'invio e l'indirizzamento delle richieste di chiamata.

  4. Creare un oggetto java.util.HashMap utilizzando il relativo costruttore.

  5. Richiama il metodo put dell'oggetto java.util.HashMap per ogni parametro di input da passare al processo di lunga durata. Poiché il processo di breve durata MyApplication/EncryptDocument richiede un parametro di input di tipo Document, è sufficiente richiamare il metodo put 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 oggetto InvocationRequest richiamando il metodo ServiceClientFactory dell'oggetto createInvocationRequest e passando i seguenti valori:

    • Valore stringa che specifica il nome del processo a lunga durata da richiamare. Per richiamare il processo MyApplication/EncryptDocument, specificare MyApplication/EncryptDocument.
    • Valore stringa che rappresenta il nome dell'operazione di processo. In genere il nome di un'operazione di processo di breve durata è invoke.
    • L'oggetto java.util.HashMap 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. Invia la richiesta di chiamata al servizio richiamando il metodo invoke dell'oggetto ServiceClient e passando l'oggetto InvocationRequest. Il metodo invoke restituisce un oggetto InvocationReponse.

    NOTA

    È possibile richiamare un processo di lunga durata passando il valore falsecome quarto parametro del metodo createInvocationRequest . Passando il valore falseviene creata una richiesta asincrona.

  8. Recupera il valore restituito dal processo richiamando il metodo getOutputParameter dell'oggetto InvocationReponse e passando un valore di stringa che specifica il nome del parametro di output. In questa situazione, specifica outDoc ( outDoc è il nome del parametro di output per il processo MyApplication/EncryptDocument). Imposta il valore restituito su Document, come illustrato nell'esempio seguente.

     InvocationResponse response = myServiceClient.invoke(request);
     Document encryptDoc = (Document) response.getOutputParameter("outDoc");
    
  9. Crea un oggetto java.io.File e assicurati che l'estensione del file sia .pdf.

  10. Richiamare il metodo copyToFile dell'oggetto com.adobe.idp.Document per copiare nel file il contenuto dell'oggetto com.adobe.idp.Document. Assicurarsi di utilizzare l'oggetto com.adobe.idp.Document restituito dal metodo getOutputParameter.

Consulta anche

Avvio rapido: Richiamare un processo di breve durata utilizzando l’API di richiamo

Richiamo dei processi a lunga durata incentrati sull'uomo

Inclusione dei file libreria Java di AEM Forms

In questa pagina