Richiamo di AEM Forms tramite l’API Java invoking-aem-forms-using-the-javaapi
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.
L'API di richiamo sono classi che si trovano nella com.adobe.idp.dsc
pacchetto. 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 EncryptionServiceClient
dell’oggetto encryptPDFUsingPassword
metodo .
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 including-aem-forms-java-library-files
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. (Vedi Impostazione delle proprietà di connessione.)
standalone.bat -b <Server IP> -c lc_turnkey.xml
per specificare un IP server per EJB.- Server dell'applicazione J2EE su 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 Rights Management.
Se AEM Forms è implementato su JBoss, includi tutti questi file.
<directory di installazione>/sdk/client-libs/common
Directory lib 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 il server dell'applicazione J2EE su cui viene distribuito AEM Forms.
</thead align="left">
-
activation.jar
-
axis.jar
-
commons-codec-1.3.jar
-
commons-collections-3.1.jar
-
commons-discovery.jar
-
commons-logging.jar
-
dom3-xml-apis-2.5.0.jar
-
jaxen-1.1-beta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
- xercesImpl.jar
- commons-httpclient-3.1.jar
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.
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]/runtime)
Se si distribuisce l'applicazione client sullo stesso server applicativo J2EE, non è necessario includere questi file.
Richiamo degli scenari invoking-scenarios
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
-
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 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 setting-connection-properties
È 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)
- 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 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
.)- Valore della porta
8080
è applicabile se l’applicazione J2EE è JBoss. Se il server applicazioni J2EE è IBM® WebSphere®, utilizza la porta9080
. Allo stesso modo, se il server dell'applicazione J2EE è WebLogic, utilizza la porta7001
. Questi valori sono valori di porta predefiniti. Se si modifica il valore della porta, utilizzare il numero di porta applicabile.)
- Valore della porta
-
DSC_TRANSPORT_PROTOCOL: Se utilizzi la modalità di connessione EJB, specifica
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
,java.naming.factory.initial
è impostato sucom.ibm.ws.naming.util.WsnInitCtxFactory
. - Se si imposta questa proprietà di connessione su
WebLogic
,java.naming.factory.initial
è impostato suweblogic.jndi.WLInitialContextFactory
. - Analogamente, se si imposta questa proprietà di connessione su
JBoss
,java.naming.factory.initial
è impostato suorg.jnp.interfaces.NamingContextFactory
. - È possibile impostare
java.naming.factory.initial
su un valore che soddisfa le tue esigenze se non desideri utilizzare i valori predefiniti.
note note NOTE Invece di utilizzare una stringa per impostare DSC_SERVER_TYPE
proprietà di connessione, è possibile utilizzare un membro statico delServiceClientFactoryProperties
classe. È possibile utilizzare i seguenti valori:ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE
,ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE
oppureServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE
. - Se si imposta questa proprietà di connessione su
-
DSC_CREDENTIAL_USERNAME: Specifica il nome utente del modulo 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 richiesta per le richieste SOAP.note note NOTE Solo le chiamate basate su SOAP supportano la proprietà DSC_REQUEST_TIMEOUT .
Per impostare le proprietà di connessione, eseguire le operazioni seguenti:
-
Crea un
java.util.Properties
utilizzando il relativo costruttore. -
Per impostare
DSC_DEFAULT_EJB_ENDPOINT
proprietà di connessione, richiamarejava.util.Properties
dell’oggettosetProperty
e passare i seguenti valori:- La
ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
valore di enumerazione - Valore stringa che specifica l'URL del server dell'applicazione J2EE che ospita AEM Forms
note note NOTE Se si utilizza la modalità di connessione SOAP, specificare la ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT
valore di enumerazione invece delServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
valore di enumerazione. - La
-
Per impostare
DSC_TRANSPORT_PROTOCOL
proprietà di connessione, richiamarejava.util.Properties
dell’oggettosetProperty
e passare i seguenti valori:- La
ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
valore di enumerazione - La
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
valore di enumerazione
note note NOTE Se si utilizza la modalità di connessione SOAP, specificare la ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
valore di enumerazione invece delServiceClientFactoryProperties.DSC_EJB_PROTOCOL
valore di enumerazione. - La
-
Per impostare
DSC_SERVER_TYPE
proprietà di connessione, richiamarejava.util.Properties
dell’oggettosetProperty
e passare i seguenti valori:-
La
ServiceClientFactoryProperties.DSC_SERVER_TYPE
valore di enumerazione -
Un valore stringa che specifica il server applicazioni J2EE che ospita AEM Forms (ad esempio, se AEM Forms è distribuito su JBoss, specificare
JBoss
).- Per impostare
DSC_CREDENTIAL_USERNAME
proprietà di connessione, richiamarejava.util.Properties
dell’oggettosetProperty
e passare i seguenti valori:
- Per impostare
-
La
ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME
valore di enumerazione -
Valore stringa che specifica il nome utente necessario per richiamare AEM Forms
- Per impostare
DSC_CREDENTIAL_PASSWORD
proprietà di connessione, richiamarejava.util.Properties
dell’oggettosetProperty
e passare i seguenti valori:
- Per impostare
-
La
ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD
valore di enumerazione -
Valore stringa che specifica il valore della password corrispondente
-
Impostazione della modalità di connessione EJB per JBoss
L'esempio di codice Java seguente imposta le proprietà di connessione per richiamare AEM Forms 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");
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");
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
Puoi utilizzare un com.adobe.idp.Context
per richiamare un servizio AEM Forms con un utente autenticato (il com.adobe.idp.Context
rappresenta un utente autenticato). Quando si utilizza un com.adobe.idp.Context
non è necessario impostare DSC_CREDENTIAL_USERNAME
o DSC_CREDENTIAL_PASSWORD
proprietà. Puoi ottenere un com.adobe.idp.Context
durante l'autenticazione degli utenti utilizzando il AuthenticationManagerServiceClient
dell’oggetto authenticate
metodo .
La authenticate
restituisce un AuthResult
oggetto che contiene i risultati dell'autenticazione. Puoi creare una com.adobe.idp.Context
richiamando il relativo costruttore. Quindi invoca il com.adobe.idp.Context
dell’oggetto initPrincipal
e passare il AuthResult
come mostrato nel codice seguente:
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
Invece di impostare DSC_CREDENTIAL_USERNAME
o DSC_CREDENTIAL_PASSWORD
è possibile richiamare le proprietà ServiceClientFactory
dell’oggetto setContext
e passare il com.adobe.idp.Context
oggetto. Quando utilizzi un utente di moduli AEM per richiamare un servizio, assicurati che il ruolo sia denominato Services User
necessaria per richiamare un servizio AEM Forms.
L'esempio di codice seguente mostra come utilizzare un com.adobe.idp.Context
oggetto all'interno delle impostazioni di connessione utilizzate per creare un EncryptionServiceClient
oggetto.
//Authenticate a user and use the Context object within connection settings
// Authenticate the user
String username = "wblue";
String password = "password";
AuthResult authResult = authClient.authenticate(username, password.getBytes());
//Set a Content object that represents the authenticated user
//Use the Context object to invoke the Encryption service
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
//Set connection settings
Properties connectionProps = new Properties();
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://<server>:1099");
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DOCUMENT_HTTP_ENDPOINT,"jnp://<server>:1099");
//Create a ServiceClientFactory object
ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
myFactory.setContext(myCtx);
//Create an EncryptionServiceClient object
EncryptionServiceClient encryptClient = new EncryptionServiceClient(myFactory);
Richiamo degli scenari invoking_scenarios-1
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 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 autonoma di AEM Forms.
In questo scenario, un'applicazione client è in esecuzione 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 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
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 passing-data-to-aem-forms-services-using-the-java-api
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 ti 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 java.io.InputStream
oggetto o array di byte. A com.adobe.idp.Document
L'oggetto può essere utilizzato anche per trasmettere ai servizi altri tipi di dati, ad esempio dati XML.
A com.adobe.idp.Document
l'oggetto è 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 del com.adobe.idp.Document
dimensioni dell’oggetto, i dati vengono trasferiti all’interno della com.adobe.idp.Document
o memorizzati nel file system del server. Le risorse di deposito temporaneo occupate da com.adobe.idp.Document
vengono rimossi automaticamente al momento della com.adobe.idp.Document
smaltimento. (Vedi Disposizione degli oggetti documento.)
A volte è necessario conoscere il tipo di contenuto di un com.adobe.idp.Document
prima di 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. (Vedi Determinazione del tipo di contenuto di un documento.)
La 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, richiama il com.adobe.idp.Document
dell’oggetto setContentType
metodo . (Vedi Determinazione del tipo di contenuto di un documento)
Se i file collaterali risiedono sullo stesso file system, creazione di un com.adobe.idp.Document
l'oggetto è 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 com.adobe.idp.Document
e org.w3c.dom.Document
tipi di dati. Tuttavia, assicurati di qualificare completamente il org.w3c.dom.Document
tipo di dati. Per informazioni sulla conversione di un org.w3c.dom.Document
oggetto a un com.adobe.idp.Document
oggetto, vedere Avvio rapido (modalità EJB): Precompilazione di Forms con layout fluidi 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
Richiamo di AEM Forms tramite l’API Java
Impostazione delle proprietà di connessione
Creazione di documenti creating-documents
Crea un com.adobe.idp.Document
prima di richiamare un'operazione di servizio che richiede un documento PDF (o altri tipi di documento) come valore di input. La com.adobe.idp.Document
La classe fornisce costruttori che consentono di creare un documento dai seguenti tipi di contenuto:
- Matrice a byte
- Una esistente
com.adobe.idp.Document
oggetto - A
java.io.File
oggetto - A
java.io.InputStream
oggetto - A
java.net.URL
oggetto
Creazione di un documento basato su una matrice di byte creating-a-document-based-on-a-byte-array
Nell'esempio di codice seguente viene creato un com.adobe.idp.Document
oggetto 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 creating-a-document-based-on-another-document
Nell'esempio di codice seguente viene creato un com.adobe.idp.Document
oggetto basato su un altro com.adobe.idp.Document
oggetto.
Creazione di un oggetto Document basato su un altro documento
//Create a Document object based on a byte array
InputStream is = new FileInputStream("C:\\Map.pdf");
int len = is.available();
byte [] myByteArray = new byte[len];
int i = 0;
while (i < len) {
i += is.read(myByteArray, i, len);
}
Document myPDFDocument = new Document(myByteArray);
//Create another Document object
Document anotherDocument = new Document(myPDFDocument);
Creazione di un documento basato su un file creating-a-document-based-on-a-file
Nell'esempio di codice seguente viene creato un com.adobe.idp.Document
oggetto basato su un file PDF denominato map.pdf. Questo file si trova nella directory principale del disco rigido C. Questo costruttore tenta di impostare il tipo di contenuto MIME del com.adobe.idp.Document
utilizzando l'estensione del nome del file.
La com.adobe.idp.Document
costruttore che accetta un java.io.File
accetta anche un parametro booleano. Impostando questo parametro su true
, com.adobe.idp.Document
elimina il file. Questa azione significa che non è necessario rimuovere il file dopo averlo trasmesso al com.adobe.idp.Document
costruttore.
Impostazione del parametro su false
significa che mantieni la proprietà del file. Impostazione del parametro su true
è più efficiente. Il motivo è che com.adobe.idp.Document
è possibile spostare il file direttamente nell'area gestita locale anziché 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 creating-a-document-based-on-an-inputstream-object
Il seguente esempio di codice Java crea un com.adobe.idp.Document
oggetto basato su un java.io.InputStream
oggetto.
Creazione di un documento basato su un oggetto InputStream
//Create a Document object based on an InputStream object
InputStream is = new FileInputStream("C:\\Map.pdf");
Document myPDFDocument = new Document(is);
Creazione di un documento basato sul contenuto accessibile da un URL creating-a-document-based-on-content-accessible-from-an-url
Il seguente esempio di codice Java crea un com.adobe.idp.Document
oggetto basato su un file PDF denominato map.pdf. Questo file si trova all'interno di un'applicazione Web denominata WebApp
che è in esecuzione localhost
. Questo costruttore tenta di impostare il com.adobe.idp.Document
tipo di contenuto MIME dell’oggetto utilizzando il tipo di contenuto restituito con il protocollo URL.
L’URL fornito al com.adobe.idp.Document
l'oggetto viene sempre letto sul lato in cui l'originale com.adobe.idp.Document
viene creato, 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 l’URL viene letto e il punto in cui viene visualizzata la com.adobe.idp.Document
oggetto creato.
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 handling-returned-documents
Le operazioni del servizio che restituiscono un documento PDF (o altri tipi di dati come i dati XML) come valore di output restituiscono un valore com.adobe.idp.Document
oggetto. Dopo aver ricevuto un com.adobe.idp.Document
è possibile convertirlo nei seguenti formati:
- A
java.io.File
oggetto - A
java.io.InputStream
oggetto - Matrice a byte
La seguente riga di codice converte un com.adobe.idp.Document
oggetto a un java.io.InputStream
oggetto. Supponiamo che myPDFDocument
rappresenta com.adobe.idp.Document
oggetto:
java.io.InputStream resultStream = myDocument.getInputStream();
Allo stesso modo, puoi copiare il contenuto di un com.adobe.idp.Document
in un file locale eseguendo le seguenti operazioni:
- Crea un
java.io.File
oggetto. - Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
e passare iljava.io.File
oggetto.
Nell'esempio di codice seguente viene copiato il contenuto di un com.adobe.idp.Document
a 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 determining-the-content-type-of-a-document
Determinare il tipo MIME di un com.adobe.idp.Document
richiamando l'oggetto com.adobe.idp.Document
dell’oggetto getContentType
metodo . Questo metodo restituisce un valore stringa che specifica il tipo di contenuto del com.adobe.idp.Document
oggetto. La tabella seguente descrive 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
Nell'esempio di codice seguente viene determinato il tipo di contenuto di un com.adobe.idp.Document
oggetto.
Determinazione del tipo di contenuto di un oggetto Document
//Determine the content type of the Document object
String ct = myDocument.getContentType();
System.out.println("The content type of the Document object is " +ct);
Consulta anche
Richiamo di AEM Forms tramite l’API Java
Impostazione delle proprietà di connessione
Disposizione degli oggetti documento disposing-document-objects
Quando non è più necessario un Document
Si consiglia di eliminarlo richiamandone l'oggetto dispose
metodo . Ogni Document
l'oggetto consuma un descrittore di file e fino a 75 MB di spazio RAM sulla piattaforma host dell'applicazione. Se Document
l'oggetto non viene eliminato, quindi il processo di raccolta Java Garage lo dispone. Tuttavia, eliminandolo prima utilizzando il dispose
è possibile liberare la memoria occupata dal Document
oggetto.
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 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. A Libreria client Java è un insieme di classi concrete che forniscono accesso ai servizi distribuiti nel contenitore di servizi. Creare un'istanza di un oggetto Java che rappresenta il servizio da richiamare invece di creare un InvocationRequest
mediante l’API di incitazione. L’API di vocazione viene utilizzata per richiamare i processi creati in Workbench, ad esempio quelli di lunga durata. (Vedi Richiamo dei 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. (Vedi Impostazione delle proprietà di connessione.)
Dopo aver impostato le proprietà di connessione, crea un ServiceClientFactory
oggetto 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, crea un ResourceRepositoryClient
utilizzando il relativo costruttore e passando ServiceClientFactory
oggetto. La ServiceClientFactory
L'oggetto è responsabile della gestione delle impostazioni di connessione necessarie per richiamare i servizi AEM Forms.
Anche se si ottiene un ServiceClientFactory
è generalmente veloce, un certo sovraccarico è coinvolto quando la fabbrica viene utilizzata per la prima volta. Questo oggetto è ottimizzato per il riutilizzo e quindi, quando possibile, utilizza lo stesso ServiceClientFactory
quando si creano più oggetti client Java. Cioè, non creare un separato ServiceClientFactory
oggetto per ogni oggetto libreria client creato.
È presente un'impostazione User Manager che controlla la durata dell'asserzione SAML che si trova all'interno della com.adobe.idp.Context
oggetto che influisce sul ServiceClientFactory
oggetto. 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 un ServiceCleintFactory
L'oggetto può essere utilizzato per due ore.
writeResource
si richiama . Questa operazione inserisce una nuova risorsa nell’archivio.Puoi richiamare il servizio Repository utilizzando una libreria client Java ed eseguendo i seguenti passaggi:
-
Includi file JAR client, come adobe-repository-client.jar, nel percorso di classe del progetto Java. Per informazioni sulla posizione di questi file, vedi Inclusione dei file libreria Java di AEM Forms.
-
Imposta le proprietà di connessione necessarie per richiamare un servizio.
-
Crea un
ServiceClientFactory
richiamando l'oggettoServiceClientFactory
statico dell’oggettocreateInstance
e passarejava.util.Properties
oggetto contenente le proprietà di connessione. -
Crea un
ResourceRepositoryClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto. Utilizza laResourceRepositoryClient
oggetto per richiamare le operazioni del servizio Repository. -
Crea un
RepositoryInfomodelFactoryBean
utilizzando il relativo costruttore e passandonull
. Questo oggetto consente di creare unResource
che rappresenta il contenuto aggiunto all'archivio. -
Crea un
Resource
richiamando l'oggettoRepositoryInfomodelFactoryBean
dell’oggettonewImage
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
. - Un valore ID univoco specificando
-
Crea un
ResourceContent
richiamando l'oggettoRepositoryInfomodelFactoryBean
dell’oggettonewImage
e il cast del valore restituito suResourceContent
. Questo oggetto rappresenta il contenuto aggiunto alla directory archivio. -
Crea un
com.adobe.idp.Document
passare un oggettojava.io.FileInputStream
oggetto che memorizza il file XDP da aggiungere all'archivio. (Vedi Creazione di un documento basato su un oggetto InputStream.) -
Aggiungi il contenuto del
com.adobe.idp.Document
dell'oggettoResourceContent
richiamando l'oggettoResourceContent
dell’oggettosetDataDocument
metodo . Passa lacom.adobe.idp.Document
oggetto. -
Imposta il tipo MIME del file XDP da aggiungere all'archivio richiamando il
ResourceContent
dell’oggettosetMimeType
metodo e passaggioapplication/vnd.adobe.xdp+xml
. -
Aggiungi il contenuto del
ResourceContent
dell'oggettoResource
richiamando l'oggettoResource
oggetto ‘ssetContent
e passareResourceContent
oggetto. -
Aggiungi una descrizione della risorsa richiamando il
Resource
oggetto ‘ssetDescription
e passare un valore stringa che rappresenta una descrizione della risorsa. -
Aggiungere la struttura del modulo all’archivio richiamando il
ResourceRepositoryClient
dell’oggettowriteResource
e passando i seguenti valori:- Valore stringa che specifica il percorso della raccolta di risorse contenente la nuova risorsa
- La
Resource
oggetto 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 invoking-a-short-lived-process-using-the-invocation-api
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 java.util.HashMap
oggetto. Per ogni parametro da passare a un servizio, richiama il java.util.HashMap
dell’oggetto put
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.
La discussione qui riguarda l'utilizzo dell'API di vocazione per invocare il seguente processo AEM Forms di breve durata denominato MyApplication/EncryptDocument
.
MyApplication/EncryptDocument
utilizzo di Workbench. (Vedi Utilizzo di Workbench.)Quando si richiama questo processo, vengono eseguite le azioni seguenti:
- Ottiene il documento PDF non protetto passato al processo. Questa azione si basa sul
SetValue
funzionamento. Il parametro di input per questo processo è undocument
variabile di processo denominatainDoc
. - Cifra il documento PDF con una password. Questa azione si basa sul
PasswordEncryptPDF
funzionamento. Il documento PDF crittografato con password viene restituito in una variabile di processo denominataoutDoc
.
Richiamare il processo di breve durata MyApplication/EncryptDocument utilizzando l'API di chiamata Java invoke-the-myapplication-encryptdocument-short-lived-process-using-the-java-invocation-api
Richiama il MyApplication/EncryptDocument
processo di breve durata tramite l’API di chiamata Java:
-
Includi file JAR client, come adobe-livecycle-client.jar, nel percorso di classe del progetto Java. (Vedi Inclusione dei file libreria Java di AEM Forms.)
-
Crea un
ServiceClientFactory
oggetto contenente le proprietà di connessione. (Vedi Impostazione delle proprietà di connessione.) -
Crea un
ServiceClient
utilizzando il relativo costruttore e passandoServiceClientFactory
oggetto. AServiceClient
consente di richiamare un'operazione del servizio. Gestisce attività quali l'individuazione, l'invio e l'indirizzamento delle richieste di chiamata. -
Crea un
java.util.HashMap
utilizzando il relativo costruttore. -
Richiama il
java.util.HashMap
dell’oggettoput
metodo per ogni parametro di input da passare al processo longevo. PerchéMyApplication/EncryptDocument
il processo di breve durata richiede un parametro di input di tipoDocument
, è sufficiente richiamareput
, come illustrato nell'esempio seguente.code language-as3 //Create a Map object to store the parameter value for inDoc Map params = new HashMap(); InputStream inFile = new FileInputStream("C:\\Adobe\Loan.pdf"); Document inDoc = new Document(inFile); params.put("inDoc", inDoc);
-
Crea un
InvocationRequest
richiamando l'oggettoServiceClientFactory
dell’oggettocreateInvocationRequest
e passando i seguenti valori:- Valore stringa che specifica il nome del processo a lunga durata da richiamare. Per richiamare
MyApplication/EncryptDocument
processo, 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
. - La
java.util.HashMap
oggetto contenente 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 a lunga durata da richiamare. Per richiamare
-
Invia la richiesta di chiamata al servizio richiamando il
ServiceClient
dell’oggettoinvoke
e passareInvocationRequest
oggetto. Lainvoke
restituisce unInvocationReponse
oggetto.note note NOTE Un processo a lungo termine può essere invocato passando il valore false
come quarto parametro delcreateInvocationRequest
metodo . Passaggio del valorefalse
crea una richiesta asincrona. -
Recupera il valore restituito del processo richiamando il
InvocationReponse
dell’oggettogetOutputParameter
e passare un valore stringa che specifica il nome del parametro di output. In questa situazione, specificareoutDoc
(outDoc
è il nome del parametro di output per ilMyApplication/EncryptDocument
processo). Imposta il valore restituito suDocument
, come illustrato nell’esempio seguente.code language-as3 InvocationResponse response = myServiceClient.invoke(request); Document encryptDoc = (Document) response.getOutputParameter("outDoc");
-
Crea un
java.io.File
e assicurati che l'estensione del file sia .pdf. -
Richiama il
com.adobe.idp.Document
dell’oggettocopyToFile
per copiare il contenuto delcom.adobe.idp.Document
al file. Assicurati di utilizzarecom.adobe.idp.Document
oggetto restituito dagetOutputParameter
metodo .
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