Richiamare AEM Forms tramite l’API Java invoking-aem-forms-using-the-javaapi
Gli esempi e gli esempi contenuti in questo documento sono solo per AEM Forms in ambiente JEE.
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 di Rights Management. Queste API fortemente tipizzate consentono di sviluppare applicazioni Java che richiamano AEM Forms.
Le API di chiamata sono classi incluse nel pacchetto com.adobe.idp.dsc
. Utilizzando queste classi, è possibile inviare una richiesta di chiamata direttamente a un servizio e gestire una risposta di chiamata restituita. Utilizza l’API di richiamo per richiamare processi di breve o lunga durata creati utilizzando Workbench.
Il modo consigliato per richiamare un servizio a livello di programmazione consiste nell’utilizzare una libreria client Java corrispondente al servizio, anziché all’API di richiamo. Ad esempio, per richiamare il servizio Encryption, utilizzare la libreria client del servizio Encryption. Per eseguire un'operazione del servizio di crittografia, richiamare un metodo appartenente all'oggetto client del servizio di crittografia. È 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 asincrone
Inclusione dei file della libreria Java di AEM Forms
Richiamare processi a lunga durata incentrati sull'uomo
Richiamare AEM Forms tramite servizi Web
Impostazione delle proprietà di connessione
Passaggio dei dati ai servizi AEM Forms tramite API Java
Richiamare un servizio utilizzando 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 di lunga durata incentrato sull’uomo
Inclusione dei file della libreria Java di AEM Forms including-aem-forms-java-library-files
Per richiamare in modo programmatico un servizio AEM Forms utilizzando l’API Java, includi i file libreria richiesti (file JAR) nel classpath 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 desideri richiamare un servizio AEM Forms. È possibile utilizzare la modalità EJB o SOAP. (Vedere Impostazione delle proprietà di connessione.)
standalone.bat -b <Server IP> -c lc_turnkey.xml
per specificare un IP server per EJB- Server applicazioni J2EE in cui viene distribuito AEM Forms.
File JAR specifici del servizio service-specific-jar-files
Nella tabella seguente sono elencati i file JAR necessari per richiamare i servizi AEM Forms.
adobe-repository-client.jar
commons-codec-1.3.jar
<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 di Rights Management.
Se AEM Forms viene distribuito su JBoss, includi tutti questi file.
<directory di installazione>/sdk/client-libs/common
Directory libreria specifica per JBoss
Modalità di connessione e file JAR dell'applicazione J2EE connection-mode-and-j2ee-application-jar-files
Nella tabella seguente sono elencati i file JAR che dipendono dalla modalità di connessione e dal server applicazioni J2EE in cui viene distribuito AEM Forms.
-
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 è distribuito sul server applicazioni JBoss, includi questo file JAR.
Le classi richieste non vengono trovate dal caricatore di classi se jboss-client.jar e i file jar di riferimento non si trovano nello stesso percorso.
Directory libreria client JBoss
Se si distribuisce l'applicazione client nello stesso server applicazioni J2EE, non è necessario includere il file.
Directory libreria specifica per WebLogic
Se si distribuisce l'applicazione client nello stesso server applicazioni J2EE, non è necessario includere il file.
-
com.ibm.ws.admin.client_6.1.0.jar
-
com.ibm.ws.webservices.thinclient_6.1.0.jar
-
se AEM Forms viene distribuito su WebSphere Application Server, includere questi file JAR.
-
(com.ibm.ws.webservices.thinclient_6.1.0.jar è richiesto per la chiamata del servizio web).
Directory libreria specifica di WebSphere ([WAS_HOME]/runtime)
Se si distribuisce l'applicazione client nello stesso server applicazioni J2EE, non è necessario includere tali file.
Richiamare scenari invoking-scenarios
La tabella seguente specifica gli scenari di chiamata ed elenca i file JAR necessari per richiamare correttamente AEM Forms.
-
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
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
- jboss-client.jar
- commons-httpclient-3.1.jar
-
adobe-forms-client.jar
-
adobe-reader-extensions-client.jar
-
adobe-signatures-client.jar
-
adobe-livecycle-client.jar
-
adobe-usermanager-client.jar
-
wlclient.jar
-
activation.jar
-
axis.jar
-
commons-codec-1.3.jar
-
commons-collections-3.1.jar
-
commons-discovery.jar
-
commons-logging.jar
-
dom3-xml-apis-2.5.0.jar
-
jai_imageio.jar
-
jaxen-1.1-beta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
-
xercesImpl.jar
-
adobe-forms-client.jar
servizio Forms
Servizio estensioni Acrobat Reader DC
Servizio di firma
-
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 upgrading-jar-files
Se stai effettuando l’aggiornamento da LiveCycle ad AEM Forms, si consiglia di includere i file JAR di AEM Forms nel percorso della classe del progetto Java. Se, ad esempio, utilizzi servizi come il servizio di Rights Management, riscontrerai un problema di compatibilità se non includi i file JAR di AEM Forms nel percorso della classe.
Supponendo di effettuare l'aggiornamento ad AEM Forms. Per utilizzare un’applicazione Java che richiama il servizio di 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
Richiamare AEM Forms tramite l’API Java
Impostazione delle proprietà di connessione
Passaggio dei dati ai servizi AEM Forms tramite API Java
Richiamare un servizio utilizzando una libreria client Java
Impostazione delle proprietà di connessione setting-connection-properties
Puoi impostare le proprietà di connessione per richiamare AEM Forms quando utilizzi l’API Java. Quando si impostano le proprietà di connessione, specificare se richiamare i servizi in remoto o in locale e 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 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 di quelle della modalità SOAP. La modalità SOAP viene utilizzata per eliminare una dipendenza dal server applicazioni J2EE o quando viene individuato un firewall tra AEM Forms e l'applicazione client. La modalità SOAP utilizza il protocollo https come trasporto sottostante e può comunicare attraverso i limiti del firewall. Se non esiste alcuna dipendenza dal server applicazioni J2EE o un firewall, è consigliabile utilizzare la modalità EJB.
Per richiamare correttamente un servizio AEM Forms, imposta le seguenti proprietà di connessione:
-
DSC_DEFAULT_EJB_ENDPOINT: Se si utilizza la modalità di connessione EJB, questo valore rappresenta l'URL del server applicazioni J2EE in cui viene distribuito AEM Forms. Per richiamare AEM Forms in modalità remota, specificare il nome del server applicazioni J2EE in cui viene distribuito AEM Forms. Se l'applicazione client si trova nello stesso server applicazioni J2EE, è possibile specificare
localhost
. A seconda del server applicazioni J2EE su cui viene distribuito AEM Forms, specificare uno dei seguenti valori:- JBoss:
https://<ServerName>:8080 (default port)
- WebSphere:
iiop://<ServerName>:2809 (default port)
- WebLogic:
t3://<ServerName>:7001 (default port)
- JBoss:
-
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 modalità remota, specificare il nome del server applicazioni J2EE in cui viene distribuito AEM Forms. Se l'applicazione client si trova nello stesso server applicazioni J2EE, è possibile specificare
localhost
, ad esempiohttp://localhost:8080
.- Il valore di porta
8080
è applicabile se l'applicazione J2EE è JBoss. Se il server applicazioni J2EE è IBM® WebSphere®, utilizzare la porta9080
. Analogamente, se il server applicazioni J2EE è WebLogic, utilizzare la porta7001
. Questi valori sono i valori di porta predefiniti. Se si modifica il valore della porta, utilizzare il numero di porta applicabile.)
- Il valore di porta
-
DSC_TRANSPORT_PROTOCOL: se si utilizza la modalità di connessione EJB, specificare
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
per questo valore. Se si utilizza la modalità di connessione SOAP, specificareServiceClientFactoryProperties.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 valorejava.naming.factory.initial
verrà impostato sucom.ibm.ws.naming.util.WsnInitCtxFactory
. - Se si imposta questa proprietà di connessione su
WebLogic
, il valorejava.naming.factory.initial
verrà impostato suweblogic.jndi.WLInitialContextFactory
. - Analogamente, se si imposta questa proprietà di connessione su
JBoss
, il valorejava.naming.factory.initial
viene impostato suorg.jnp.interfaces.NamingContextFactory
. - È possibile impostare la proprietà
java.naming.factory.initial
su un valore che soddisfi i requisiti se non si desidera utilizzare i valori predefiniti.
note note NOTE Anziché utilizzare una stringa per impostare la proprietà di connessione DSC_SERVER_TYPE
, è possibile utilizzare un membro statico della classeServiceClientFactoryProperties
. È possibile utilizzare i valori seguenti:ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE
,ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE
oServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE
. - Se si imposta questa proprietà di connessione su
-
DSC_CREDENTIAL_USERNAME: Specifica il nome utente dei moduli AEM. Per richiamare correttamente un servizio AEM Forms, l’utente deve disporre del ruolo Utente servizi. Un utente può anche avere un altro ruolo che include l’autorizzazione Richiesta servizio. 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 per la 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 della 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:
-
Creare un oggetto
java.util.Properties
utilizzando il relativo costruttore. -
Per impostare la proprietà di connessione
DSC_DEFAULT_EJB_ENDPOINT
, richiamare il metodosetProperty
dell'oggettojava.util.Properties
e passare i valori seguenti:- Valore di enumerazione
ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
- Valore stringa che specifica l'URL del server applicazioni J2EE che ospita AEM Forms
note note NOTE Se si utilizza la modalità di connessione SOAP, specificare il valore di enumerazione ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT
anziché il valore di enumerazioneServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
. - Valore di enumerazione
-
Per impostare la proprietà di connessione
DSC_TRANSPORT_PROTOCOL
, richiamare il metodosetProperty
dell'oggettojava.util.Properties
e passare i valori seguenti:- Valore di enumerazione
ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
- Valore di enumerazione
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
note note NOTE Se si utilizza la modalità di connessione SOAP, specificare il valore di enumerazione ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
anziché il valore di enumerazioneServiceClientFactoryProperties.DSC_EJB_PROTOCOL
. - Valore di enumerazione
-
Per impostare la proprietà di connessione
DSC_SERVER_TYPE
, richiamare il metodosetProperty
dell'oggettojava.util.Properties
e passare i valori seguenti:-
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
).- Per impostare la proprietà di connessione
DSC_CREDENTIAL_USERNAME
, richiamare il metodosetProperty
dell'oggettojava.util.Properties
e passare i valori seguenti:
- Per impostare la proprietà di connessione
-
Valore di enumerazione
ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME
-
Valore stringa che specifica il nome utente necessario per richiamare AEM Forms
- Per impostare la proprietà di connessione
DSC_CREDENTIAL_PASSWORD
, richiamare il metodosetProperty
dell'oggettojava.util.Properties
e passare i valori seguenti:
- Per impostare la proprietà di connessione
-
Valore di enumerazione
ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD
-
Valore stringa che specifica il valore password corrispondente
-
Impostazione della modalità di connessione EJB per JBoss
Esempio Nell'esempio di codice Java riportato di seguito vengono impostate le proprietà di connessione per richiamare AEM Forms distribuito 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
Esempio Nell'esempio di codice Java riportato di seguito vengono impostate le proprietà di connessione per richiamare AEM Forms distribuito 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
Esempio Nell'esempio di codice Java riportato di seguito vengono impostate le proprietà di connessione per richiamare AEM Forms distribuito 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
Esempio Nell’esempio di codice Java seguente le proprietà di connessione vengono impostate 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");
Impostazione delle proprietà di connessione quando la protezione del servizio è disabilitata
Esempio Nell'esempio di codice Java riportato di seguito vengono impostate le proprietà di connessione necessarie per richiamare AEM Forms distribuito nel server applicazioni JBoss e quando la protezione 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");
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 authenticate
dell'oggetto AuthenticationManagerServiceClient
.
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);
Anziché impostare le proprietà DSC_CREDENTIAL_USERNAME
o DSC_CREDENTIAL_PASSWORD
, è possibile richiamare il metodo setContext
dell'oggetto ServiceClientFactory
e passare l'oggetto com.adobe.idp.Context
. Quando si utilizza un utente AEM forms per richiamare un servizio, assicurarsi che il ruolo assegnato sia Services User
, necessario per richiamare un servizio AEM Forms.
Esempio Nell'esempio di codice riportato di seguito viene illustrato come utilizzare un oggetto com.adobe.idp.Context
nelle 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);
Richiamare scenari invoking_scenarios-1
In questa sezione vengono descritti i seguenti scenari di richiamo:
- Un’applicazione client in esecuzione nella propria Java Virtual Machine (JVM) richiama un’istanza AEM Forms autonoma.
- Un’applicazione client in esecuzione nella propria JVM richiama le istanze AEM Forms in cluster.
Applicazione client che richiama un’istanza AEM Forms autonoma client-application-invoking-a-stand-alone-aem-forms-instance
Il diagramma seguente mostra un’applicazione client in esecuzione nella propria JVM e che richiama un’istanza AEM Forms autonoma.
In questo scenario, un’applicazione client viene eseguita nella propria JVM e richiama i servizi AEM Forms.
Applicazione client che richiama istanze AEM Forms in cluster client-application-invoking-clustered-aem-forms-instances
Il diagramma seguente mostra un’applicazione client in esecuzione nella propria JVM e che richiama istanze AEM Forms 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 applicazioni J2EE specifico, è necessario modificare l'URL per fare riferimento al server applicazioni J2EE specifico.
Il riferimento a un server applicazioni J2EE specifico non è consigliato perché la connessione tra l'applicazione client e AEM Forms viene interrotta se il server applicazioni si arresta. È consigliabile che l'URL del provider faccia riferimento a un gestore JNDI a livello di cella, anziché a un server applicazioni J2EE specifico.
Le applicazioni client che utilizzano la modalità di connessione SOAP possono utilizzare la porta del load balancer HTTP per il cluster. Le applicazioni client che utilizzano la modalità di connessione EJB possono connettersi alla porta EJB di un server applicazioni J2EE specifico. Questa azione gestisce il bilanciamento del carico tra i nodi del cluster.
WebSphere
Nell'esempio seguente viene illustrato 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 a AEM Forms distribuito su WebLogic.
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://appserver1:8001, appserver2:8001
JBoss
Il seguente esempio mostra il contenuto di un file jndi.properties che viene utilizzato per connettersi a AEM Forms che viene distribuito su JBoss.
java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
appserver3:1099
Consulta anche
Includere AEM Forms file Java libreria
Passaggio di dati ai servizi AEM Forms tramite Java API passing-data-to-aem-forms-services-using-the-java-api
In genere, le operazioni dei servizi AEM Forms utilizzano o producono documenti PDF. Quando si richiama un servizio, a volte è necessario passare un documento PDF (o altri tipi di documenti come i dati XML) al servizio. Analogamente, a volte è necessario gestire un documento PDF restituito dal servizio. La classe Java che consente di passare dati da e verso i 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 una matrice di byte. È inoltre possibile utilizzare un oggetto com.adobe.idp.Document
per passare altri tipi di dati, ad esempio dati XML, ai servizi.
Un oggetto com.adobe.idp.Document
è un tipo serializzabile Java, quindi può essere trasmesso tramite una chiamata RMI. Il lato di ricezione può essere collocato (stesso host, stesso caricatore di classe), locale (stesso host, caricatore di classi diverso) o remoto (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 trasferiti in memoria.
A seconda della dimensione dell'oggetto com.adobe.idp.Document
, i dati vengono memorizzati nell'oggetto com.adobe.idp.Document
o memorizzati nel file system del server. Tutte le risorse di archiviazione temporanee occupate dall'oggetto com.adobe.idp.Document
vengono rimosse automaticamente al momento dell'eliminazione di com.adobe.idp.Document
. (Vedi Eliminazione 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. Se ad esempio un'operazione richiede un tipo di contenuto specifico, ad esempio application/pdf
, è consigliabile determinare il tipo di contenuto. (Vedi 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
. (Vedi Determinazione del tipo di contenuto di un documento)
Se i file collaterali risiedono nello 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 entrambi i tipi di dati com.adobe.idp.Document
e org.w3c.dom.Document
. Assicurarsi tuttavia di aver qualificato 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 Guida rapida (modalità EJB): precompilazione di Forms con layout che consentono il flusso tramite l'API Java.
com.adobe.idp.Document
, leggere le informazioni del documento in blocchi di 2048 byte o meno. 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 creating-documents
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 di 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 creating-a-document-based-on-a-byte-array
Esempio Nell'esempio di codice seguente viene creato un oggetto com.adobe.idp.Document
basato su una matrice di byte.
Creazione di un oggetto Document basato su una matrice di byte
Document myPDFDocument = new Document(myByteArray);
Creazione di un documento basato su un altro documento creating-a-document-based-on-another-document
Esempio 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 creating-a-document-based-on-a-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 file.
Il costruttore com.adobe.idp.Document
che accetta un oggetto java.io.File
accetta anche un parametro booleano. Impostando questo parametro su true
, l'oggetto com.adobe.idp.Document
elimina il file. Ciò significa che non è necessario rimuovere il file dopo averlo passato al costruttore com.adobe.idp.Document
.
L'impostazione di questo parametro su false
indica che 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 anziché copiarlo (operazione più lenta).
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 creating-a-document-based-on-an-inputstream-object
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 su contenuto accessibile da un URL creating-a-document-based-on-content-accessible-from-an-url
Nell'esempio di codice Java seguente viene creato un oggetto com.adobe.idp.Document
basato su un file PDF denominato map.pdf. Il file si trova in 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 corrisponde al luogo in cui viene letto il URL e in cui è stato creato l'oggetto com.adobe.idp.Document
.
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
Richiamare AEM Forms tramite l’API Java
Impostazione delle proprietà di connessione
Gestione dei documenti restituiti handling-returned-documents
Le operazioni di servizio che restituiscono un documento PDF (o altri tipi di dati, ad esempio i dati XML) come valore di output restituiscono un com.adobe.idp.Document
oggetto. Una volta ricevuto l'oggetto com.adobe.idp.Document
, è possibile convertire di esso nei seguenti formati:
- Un
java.io.File
oggetto - Un
java.io.InputStream
oggetto - Matrice di byte
La riga di codice seguente converte un oggetto com.adobe.idp.Document
in un oggetto java.io.InputStream
. Si supponga che myPDFDocument
rappresenti un oggetto com.adobe.idp.Document
:
java.io.InputStream resultStream = myDocument.getInputStream();
Analogamente, è possibile copiare il contenuto di un com.adobe.idp.Document
in un file locale eseguendo le attività seguenti:
- Creare un oggetto
java.io.File
. - Richiama il metodo
copyToFile
dell'oggettocom.adobe.idp.Document
e passa l'oggettojava.io.File
.
Esempio Nell'esempio di codice riportato di seguito 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
Determinazione del tipo di contenuto di un documento determining-the-content-type-of-a-document
Determinare il tipo MIME di un oggetto com.adobe.idp.Document
richiamando il metodo getContentType
dell'oggetto com.adobe.idp.Document
. Questo metodo restituisce un valore stringa che specifica il tipo di contenuto dell'oggetto com.adobe.idp.Document
. Nella tabella seguente sono descritti i diversi tipi di contenuto restituiti da AEM Forms.
application/pdf
application/vnd.adobe.xdp+xml
text/xml
application/vnd.fdf
application/vnd.adobe.xfdf
application/rdf+xml
application/octet-stream
NULL
Esempio 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
Eliminazione di oggetti documento disposing-document-objects
Quando non è più necessario un oggetto Document
, è consigliabile eliminarlo richiamando il relativo metodo dispose
. Ogni oggetto Document
utilizza 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 dell'insieme Java Garage lo elimina. Tuttavia, eliminandola prima utilizzando il metodo dispose
, è possibile liberare la memoria occupata dall'oggetto Document
.
Consulta anche
Richiamare AEM Forms tramite l’API Java
Inclusione dei file della libreria Java di AEM Forms
Richiamare un servizio utilizzando una libreria client Java
Richiamare un servizio utilizzando una libreria client Java invoking-a-service-using-a-java-client-library
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 accesso ai servizi distribuiti nel contenitore di servizi. Si crea un'istanza di un oggetto Java che rappresenta il servizio da richiamare anziché creare un oggetto InvocationRequest
utilizzando l'API di chiamata. L’API di richiamo viene utilizzata per richiamare i processi creati in Workbench, ad esempio quelli di lunga durata. (Vedi Richiamare Processi A Lunga Durata Incentrati Sull'Uomo.)
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 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 consenta di richiamare un servizio. Ogni servizio che ha 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 gestione delle impostazioni di connessione necessarie per richiamare i servizi AEM Forms.
Sebbene l'ottenimento di un ServiceClientFactory
sia in genere veloce, quando si utilizza la fabbrica per la prima volta si verifica un sovraccarico. Questo oggetto è ottimizzato per il riutilizzo e quindi, quando possibile, utilizza lo stesso oggetto ServiceClientFactory
quando si creano più oggetti client Java. In altre parole, non creare un oggetto ServiceClientFactory
separato per ogni oggetto libreria client creato.
È presente un'impostazione di 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 tutte le durate 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 oggetto ServiceCleintFactory
può essere utilizzato è di due ore.
writeResource
del servizio Repository. Questa operazione inserisce una nuova risorsa nel archivio.È possibile richiamare il servizio Repository utilizzando un client Java libreria ed eseguendo i seguenti passaggi:
-
Includi file JAR client, come adobe-archivio-client.jar, nel percorso della classe del progetto Java. Per informazioni sul percorso di questi file, consultate Inclusione AEM Forms file libreria Java.
-
Impostare le proprietà di connessione necessarie per richiamare un servizio.
-
Creare un oggetto
ServiceClientFactory
richiamando il metodocreateInstance
statico dell'oggettoServiceClientFactory
e passando l'oggettojava.util.Properties
che contiene le proprietà di connessione. -
Creare un oggetto
ResourceRepositoryClient
utilizzando il relativo costruttore e passando l'oggettoServiceClientFactory
. Utilizzare l'oggetto per richiamare leResourceRepositoryClient
operazioni del servizio Repository. -
Crea un oggetto utilizzando il
RepositoryInfomodelFactoryBean
relativo costruttore e passanull
. Questo oggetto consente di creare unResource
oggetto che rappresenta il contenuto aggiunto al archivio. -
Crea un
Resource
oggetto richiamando il metodo dell'oggettoRepositoryInfomodelFactoryBean
newImage
e trasmettendo 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.
Eseguire il cast del valore restituito in
Resource
. - Un valore ID univoco specificando
-
Creare un oggetto
ResourceContent
richiamando il metodonewImage
dell'oggettoRepositoryInfomodelFactoryBean
ed eseguendo il cast del valore restituito inResourceContent
. Questo oggetto rappresenta il contenuto aggiunto al repository. -
Creare un oggetto
com.adobe.idp.Document
passando un oggettojava.io.FileInputStream
che memorizza il file XDP da aggiungere al repository. (Vedi Creazione di un documento basato su un oggetto InputStream.) -
Aggiungere il contenuto dell'oggetto
com.adobe.idp.Document
all'oggettoResourceContent
richiamando il metodosetDataDocument
dell'oggettoResourceContent
. Passa l'oggettocom.adobe.idp.Document
. -
Impostare il tipo MIME del file XDP da aggiungere al repository richiamando il metodo
setMimeType
dell'oggettoResourceContent
e passandoapplication/vnd.adobe.xdp+xml
. -
Aggiungere il contenuto dell'oggetto
ResourceContent
all'oggettoResource
richiamando il metodosetContent
dell'oggettoResource
e passando l'oggettoResourceContent
. -
Aggiungere una descrizione della risorsa richiamando il metodo
setDescription
dell'oggettoResource
e passando un valore stringa che rappresenta una descrizione della risorsa. -
Aggiungere la struttura del modulo al repository richiamando il metodo
writeResource
dell'oggettoResourceRepositoryClient
e passando i valori seguenti:- Valore stringa che specifica il percorso della raccolta di risorse contenente la nuova risorsa
- L'oggetto
Resource
creato
Consulta anche
Quick Start (modalità EJB): scrittura di una risorsa utilizzando l’API Java
Richiamare un processo di breve durata utilizzando l’API di richiamo invoking-a-short-lived-process-using-the-invocation-api
È possibile richiamare un processo di breve durata utilizzando l’API di chiamata Java. Quando si richiama un processo di breve durata utilizzando l'API di chiamata, si trasmettono i valori dei parametri richiesti utilizzando un oggetto java.util.HashMap
. Per ogni parametro da passare a un servizio, richiamare il metodo put
dell'oggetto java.util.HashMap
e specificare la coppia nome-valore richiesta dal servizio per eseguire l'operazione specificata. Specificare il nome esatto dei parametri che appartengono al processo di breve durata.
La discussione qui riguarda l'utilizzo dell'API di richiamo per richiamare il seguente processo di breve durata di AEM Forms denominato MyApplication/EncryptDocument
.
MyApplication/EncryptDocument
utilizzando Workbench. (Vedi Utilizzo di Workbench.)Quando viene richiamato, il processo esegue le azioni seguenti:
- 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 processodocument
denominatainDoc
. - Crittografa il documento PDF con una password. Questa azione è basata sull'operazione
PasswordEncryptPDF
. Il documento PDF crittografato con password è stato restituito in una variabile di processo denominataoutDoc
.
Richiama il processo MyApplication/EncryptDocument di breve durata utilizzando l’API di chiamata Java invoke-the-myapplication-encryptdocument-short-lived-process-using-the-java-invocation-api
Richiama il processo di breve durata MyApplication/EncryptDocument
utilizzando l'API di chiamata Java:
-
Includi i file JAR client, come adobe-livecycle-client.jar, nel percorso di classe del progetto Java. (Vedi Inclusione dei file della libreria Java di AEM Forms.)
-
Creare un oggetto
ServiceClientFactory
contenente le proprietà di connessione. (Vedere Impostazione delle proprietà di connessione.) -
Creare un oggetto
ServiceClient
utilizzando il relativo costruttore e passando l'oggettoServiceClientFactory
. Un oggettoServiceClient
consente di richiamare un'operazione di servizio. Gestisce attività quali l’individuazione, l’invio e l’instradamento delle richieste di chiamata. -
Creare un oggetto
java.util.HashMap
utilizzando il relativo costruttore. -
Richiama il metodo
put
dell'oggettojava.util.HashMap
per ogni parametro di input da passare al processo di lunga durata. Poiché il processo di breve durataMyApplication/EncryptDocument
richiede un parametro di input di tipoDocument
, è necessario richiamare il metodoput
una sola volta, come illustrato nell'esempio seguente.code language-java //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);
-
Creare un oggetto
InvocationRequest
richiamando il metodocreateInvocationRequest
dell'oggettoServiceClientFactory
e passando i valori seguenti:- Valore stringa che specifica il nome del processo di lunga durata da richiamare. Per richiamare il processo
MyApplication/EncryptDocument
, specificareMyApplication/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).
- Valore stringa che specifica il nome del processo di lunga durata da richiamare. Per richiamare il processo
-
Inviare la richiesta di chiamata al servizio richiamando il metodo
invoke
dell'oggettoServiceClient
e passando l'oggettoInvocationRequest
. Il metodoinvoke
restituisce un oggettoInvocationReponse
.note note NOTE È possibile richiamare un processo di lunga durata passando il valore false
come quarto parametro del metodocreateInvocationRequest
. Il passaggio del valorefalse
crea una richiesta asincrona. -
Recuperare il valore restituito dal processo richiamando il metodo
getOutputParameter
dell'oggettoInvocationReponse
e passando un valore stringa che specifica il nome del parametro di output. In questa situazione, specificareoutDoc
(outDoc
è il nome del parametro di output per il processoMyApplication/EncryptDocument
). Eseguire il cast del valore restituito suDocument
, come illustrato nell'esempio seguente.code language-java InvocationResponse response = myServiceClient.invoke(request); Document encryptDoc = (Document) response.getOutputParameter("outDoc");
-
Creare un oggetto
java.io.File
e verificare che l'estensione del file sia .pdf. -
Richiama il metodo
copyToFile
dell'oggettocom.adobe.idp.Document
per copiare il contenuto dell'oggettocom.adobe.idp.Document
nel file. Assicurarsi di utilizzare l'oggettocom.adobe.idp.Document
restituito dal metodogetOutputParameter
.
Consulta anche
Guida introduttiva: richiamare un processo di breve durata utilizzando l’API di chiamata
Richiamare processi a lunga durata incentrati sull'uomo
Inclusione dei file della libreria Java di AEM Forms