AEM Forms aanroepen met de Java API invoking-aem-forms-using-the-javaapi
AEM Forms kan worden aangeroepen door de AEM Forms Java API te gebruiken. Wanneer u de AEM Forms Java API gebruikt, kunt u de Invocation API- of Java-clientbibliotheken gebruiken. Java-clientbibliotheken zijn beschikbaar voor services zoals de service Rights Management. Deze sterk getypte APIs laten u toepassingen ontwikkelen Java die AEM Forms aanhalen.
De oproepings-API zijn klassen die zich bevinden in de com.adobe.idp.dsc
pakket. Met deze klassen kunt u een aanroepingsverzoek rechtstreeks naar een service verzenden en een geretourneerde aanroepingsreactie afhandelen. Gebruik de oproepings-API om kortstondige of langlevende processen aan te roepen die met Workbench zijn gemaakt.
De geadviseerde manier om een dienst programmatically aan te halen is een de cliëntbibliotheek van Java te gebruiken die aan de dienst in tegenstelling tot de Inroeping API beantwoordt. Als u bijvoorbeeld de coderingsservice wilt aanroepen, gebruikt u de clientbibliotheek van de coderingsservice. Om een de dienstverrichting van de Encryptie uit te voeren, haal een methode aan die tot het de dienstcliëntvoorwerp van de Encryptie behoort. U kunt een PDF-document versleutelen met een wachtwoord door het EncryptionServiceClient
object encryptPDFUsingPassword
methode.
De Java API ondersteunt de volgende functies:
- Het vervoerprotocol van RMI voor verre aanroeping
- VM-transport voor lokale aanroeping
- SOAP voor externe aanroep
- Verschillende verificatie, zoals gebruikersnaam en wachtwoord
- Synchrone en asynchrone oproepverzoeken
Zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Het aanhalen van mens-Centric langlevende Processen
AEM Forms aanroepen met webservices
Verbindingseigenschappen instellen
Gegevens doorgeven aan AEM Forms-services met de Java API
Een service aanroepen met een Java-clientbibliotheek
Een kortstondig proces aanroepen met de API voor aanroepen
Een Java-webtoepassing maken die een menselijk-centrisch proces van lange duur oproept
Inclusief AEM Forms Java-bibliotheekbestanden including-aem-forms-java-library-files
Als u een AEM Forms-service programmatisch wilt aanroepen met de Java API, neemt u de vereiste bibliotheekbestanden (JAR-bestanden) op in het klassepad van uw Java-project. De JAR-bestanden die u in het klassenpad van de clienttoepassing opneemt, zijn afhankelijk van verschillende factoren:
- De AEM Forms-service die moet worden aangeroepen. Een cliënttoepassing kan één of meerdere diensten aanhalen.
- De modus waarin u een AEM Forms-service wilt aanroepen. U kunt de modus EJB of SOAP gebruiken. (Zie Verbindingseigenschappen instellen.)
standalone.bat -b <Server IP> -c lc_turnkey.xml
om een server-IP voor EJB op te geven.- De J2EE-toepassingsserver waarop AEM Forms wordt geïmplementeerd.
Servicespecifieke JAR-bestanden service-specific-jar-files
In de volgende tabel worden de JAR-bestanden weergegeven die nodig zijn om AEM Forms-services aan te roepen.
adobe-repository-client.jar
commons-codec-1.3.jar
<installatiemap>/sdk/client-libs/common
<installatiemap>/sdk/client-libs\third-party
-
adobe-rightsmanagement-client.jar
-
namespace.jar
-
jaxb-api.jar
-
jaxb-impl.jar
-
jaxb-libs.jar
-
jaxb-xjc.jar
-
relaxngDatatype.jar
-
xsdlib.jar
Vereist om de dienst van het Rights Management aan te halen.
Als AEM Forms wordt geïmplementeerd op JBoss, neemt u al deze bestanden op.
<installatiemap>/sdk/client-libs/common
JBoss-specifieke lib-map
Verbindingsmodus en JAR-bestanden voor J2EE-toepassing connection-mode-and-j2ee-application-jar-files
In de volgende tabel worden de JAR-bestanden weergegeven die afhankelijk zijn van de verbindingsmodus en de J2EE-toepassingsserver waarop AEM Forms wordt geïmplementeerd.
</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-bèta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
- xercesImpl.jar
- commons-httpclient-3.1.jar
Als AEM Forms is geïmplementeerd op JBoss Application Server, neemt u dit JAR-bestand op.
Vereiste klassen worden niet gevonden door de klasseleider als jreliëf-client.jar en de jars waarnaar wordt verwezen, zich niet op dezelfde locatie bevinden.
JBoss client lib directory
Als u uw clienttoepassing op dezelfde J2EE-toepassingsserver implementeert, hoeft u dit bestand niet op te nemen.
WebLogic-specifieke lib-directory
Als u uw clienttoepassing op dezelfde J2EE-toepassingsserver implementeert, hoeft u dit bestand niet op te nemen.
-
com.ibm.ws.admin.client_6.1.0.jar
-
com.ibm.ws.webservices.thinclient_6.1.0.jar
-
Als AEM Forms wordt geïmplementeerd op WebSphere Application Server, neemt u deze JAR-bestanden op.
-
(com.ibm.ws.webservices.thinclient_6.1.0.jar is vereist voor het oproepen van webservices).
WebSphere-specifieke lib-map ([WAS_HOME]/runtimes)
Als u uw clienttoepassing op dezelfde J2EE-toepassingsserver implementeert, hoeft u deze bestanden niet op te nemen.
Oproepen van scenario's invoking-scenarios
In de volgende tabel worden de aanroepingsscenario's aangegeven en worden de JAR-bestanden weergegeven die AEM Forms moeten aanroepen.
</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
Forms-service
Acrobat Reader DC-extensieservice
Handtekeningenservice
-
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-bèta-9.jar
-
jaxrpc.jar
-
log4j.jar
-
mail.jar
-
saaj.jar
-
wsdl4j.jar
-
xalan.jar
-
xbean.jar
-
xercesImpl.jar
-
adobe-forms-client.jar
Forms-service
Acrobat Reader DC-extensieservice
Handtekeningenservice
-
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-bèta-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
JAR-bestanden bijwerken upgrading-jar-files
Als u een upgrade uitvoert van LiveCycle naar AEM Forms, wordt u aangeraden de AEM Forms JAR-bestanden op te nemen in het klassenpad van uw Java-project. Als u bijvoorbeeld services zoals de service Rights Management gebruikt, treedt er een compatibiliteitsprobleem op als u geen AEM Forms JAR-bestanden opneemt in het klassenpad.
Ervan uitgaande dat u een upgrade uitvoert naar AEM Forms. Als u een Java-toepassing wilt gebruiken die de service Rights Management aanroept, neemt u de AEM Forms-versies van de volgende JAR-bestanden op:
- adobe-rightsmanagement-client.jar
- adobe-livecycle-client.jar
- adobe-usermanager-client.jar
Zie ook
AEM Forms aanroepen met de Java API
Verbindingseigenschappen instellen
Gegevens doorgeven aan AEM Forms-services met de Java API
Een service aanroepen met een Java-clientbibliotheek
Verbindingseigenschappen instellen setting-connection-properties
U stelt verbindingseigenschappen in om AEM Forms aan te roepen wanneer u de Java API gebruikt. Geef bij het instellen van eigenschappen voor verbindingen op of services extern of lokaal moeten worden aangeroepen en geef ook de verbindingsmodus en verificatiewaarden op. De waarden van de authentificatie worden vereist als de dienstveiligheid wordt toegelaten. Nochtans, als de dienstveiligheid gehandicapt is, is het niet noodzakelijk om authentificatiewaarden te specificeren.
De verbindingsmodus kan SOAP- of EJB-modus zijn. De wijze EJB gebruikt het protocol RMI/IIOP, en de prestaties van de wijze EJB zijn beter dan de prestaties van de wijze van de ZEEP. De modus SOAP wordt gebruikt om een J2EE-toepassingsserverafhankelijkheid te elimineren of wanneer een firewall zich tussen AEM Forms en de clienttoepassing bevindt. De wijze van de ZEEP gebruikt het HTTPS protocol als onderliggend vervoer en kan over firewallgrenzen communiceren. Als noch een J2EE-toepassingsserverafhankelijkheid, noch een firewall een probleem is, wordt u aangeraden de EJB-modus te gebruiken.
Als u een AEM Forms-service wilt aanroepen, stelt u de volgende verbindingseigenschappen in:
-
DSC_DEFAULT_EJB_ENDPOINT: Als u de EJB-verbindingsmodus gebruikt, vertegenwoordigt deze waarde de URL van de J2EE-toepassingsserver waarop AEM Forms wordt geïmplementeerd. Als u AEM Forms op afstand wilt aanroepen, geeft u de naam op van de J2EE-toepassingsserver waarop AEM Forms wordt geïmplementeerd. Als uw clienttoepassing zich op dezelfde J2EE-toepassingsserver bevindt, kunt u
localhost
. Afhankelijk van welke J2EE-toepassingsserver AEM Forms wordt geïmplementeerd, geeft u een van de volgende waarden op:- JBoss:
https://<ServerName>:8080 (default port)
- WebSphere:
iiop://<ServerName>:2809 (default port)
- WebLogic:
t3://<ServerName>:7001 (default port)
- JBoss:
-
DSC_DEFAULT_SOAP_ENDPOINT: Als u de verbindingswijze van de ZEEP gebruikt, vertegenwoordigt deze waarde het eindpunt waarnaar een aanroepingsverzoek wordt verzonden. Als u AEM Forms op afstand wilt aanroepen, geeft u de naam op van de J2EE-toepassingsserver waarop AEM Forms wordt geïmplementeerd. Als uw clienttoepassing zich op dezelfde J2EE-toepassingsserver bevindt, kunt u
localhost
(bijvoorbeeldhttp://localhost:8080
.)- De poortwaarde
8080
is van toepassing als de J2EE-toepassing JBoss is. Als de J2EE-toepassingsserver IBM® WebSphere® is, gebruikt u poort9080
. En als de J2EE-toepassingsserver WebLogic is, gebruikt u poort7001
. (Deze waarden zijn standaardpoortwaarden. Als u de havenwaarde verandert, gebruik het toepasselijke havenaantal.)
- De poortwaarde
-
DSC_TRANSPORT_PROTOCOL: Als u de EJB-verbindingsmodus gebruikt, geeft u
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
voor deze waarde. Als u de verbindingsmodus SOAP gebruikt, geeft uServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
. -
DSC_SERVER_TYPE: Geeft de J2EE-toepassingsserver aan waarop AEM Forms wordt geïmplementeerd. Geldige waarden zijn
JBoss
,WebSphere
,WebLogic
.- Als u deze eigenschap instelt op
WebSphere
dejava.naming.factory.initial
waarde is ingesteld opcom.ibm.ws.naming.util.WsnInitCtxFactory
. - Als u deze eigenschap instelt op
WebLogic
dejava.naming.factory.initial
waarde is ingesteld opweblogic.jndi.WLInitialContextFactory
. - En als u deze eigenschap voor de verbinding instelt op
JBoss
dejava.naming.factory.initial
waarde is ingesteld oporg.jnp.interfaces.NamingContextFactory
. - U kunt de
java.naming.factory.initial
aan een waarde die aan uw vereisten voldoet als u niet de standaardwaarden wilt gebruiken.
note note NOTE In plaats van een tekenreeks te gebruiken, stelt u de DSC_SERVER_TYPE
verbinding, bezit, kunt u een statisch lid van gebruikenServiceClientFactoryProperties
klasse. De volgende waarden kunnen worden gebruikt:ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE
,ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE
, ofServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE
. - Als u deze eigenschap instelt op
-
DSC_CREDENTIAL_USERNAME: Hier geeft u de gebruikersnaam voor AEM formulieren op. Voor een gebruiker om de dienst van AEM Forms met succes aan te halen, hebben zij de rol van de Gebruiker van de Diensten nodig. Een gebruiker kan een andere rol ook hebben die de Dienst omvat roept toestemming. Anders, wordt een uitzondering geworpen wanneer zij proberen om de dienst aan te halen. Als de de dienstveiligheid gehandicapt is, is het niet noodzakelijk om dit verbindingsbezit te specificeren.
-
DSC_CREDENTIAL_PASSWORD: Specifies the corresponding password value. Als de de dienstveiligheid gehandicapt is, is het niet noodzakelijk om dit verbindingsbezit te specificeren.
-
DSC_REQUEST_TIMEOUT: De standaardlimiet voor de time-out van het verzoek voor SOAP is 1200000 milliseconden (20 minuten). Soms kan een aanvraag langer duren om de bewerking te voltooien. Een SOAP-aanvraag die bijvoorbeeld een grote set records ophaalt, kan een langere time-outlimiet vereisen. U kunt de
ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT
om de de tijdslimiet van de verzoekvraag voor de verzoeken van de ZEEP te verhogen.note note NOTE Alleen op SOAP gebaseerde aanroepen ondersteunen de eigenschap DSC_REQUEST_TIMEOUT.
Voer de volgende taken uit om verbindingseigenschappen in te stellen:
-
Een
java.util.Properties
object met behulp van de constructor. -
Als u de
DSC_DEFAULT_EJB_ENDPOINT
eigenschap connection, activeer dejava.util.Properties
objectsetProperty
en geeft de volgende waarden door:- De
ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
opsommingswaarde - Een tekenreekswaarde die de URL van de J2EE-toepassingsserver opgeeft die als host fungeert voor AEM Forms
note note NOTE Als u de verbindingsmodus SOAP gebruikt, geeft u de ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT
opsommingswaarde in plaats van deServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
opsommingswaarde. - De
-
Als u de
DSC_TRANSPORT_PROTOCOL
eigenschap connection, activeer dejava.util.Properties
objectsetProperty
en geeft de volgende waarden door:- De
ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
opsommingswaarde - De
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
opsommingswaarde
note note NOTE Als u de verbindingsmodus SOAP gebruikt, geeft u de ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
opsommingswaarde in plaats van deServiceClientFactoryProperties.DSC_EJB_PROTOCOL
opsommingswaarde. - De
-
Als u de
DSC_SERVER_TYPE
eigenschap connection, activeer dejava.util.Properties
objectsetProperty
en geeft de volgende waarden door:-
De
ServiceClientFactoryProperties.DSC_SERVER_TYPE
opsommingswaarde -
Een tekenreekswaarde die de J2EE-toepassingsserver opgeeft waarop AEM Forms wordt gehost (als AEM Forms bijvoorbeeld wordt geïmplementeerd op JBoss, geeft u op
JBoss
).- Als u de
DSC_CREDENTIAL_USERNAME
eigenschap connection, activeer dejava.util.Properties
objectsetProperty
en geeft de volgende waarden door:
- Als u de
-
De
ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME
opsommingswaarde -
Een tekenreekswaarde die de gebruikersnaam opgeeft die vereist is om AEM Forms aan te roepen
- Als u de
DSC_CREDENTIAL_PASSWORD
eigenschap connection, activeer dejava.util.Properties
objectsetProperty
en geeft de volgende waarden door:
- Als u de
-
De
ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD
opsommingswaarde -
Een tekenreekswaarde die de bijbehorende wachtwoordwaarde opgeeft
-
De EJB-verbindingsmodus instellen voor JBoss
In het volgende Java-codevoorbeeld worden eigenschappen voor verbindingen ingesteld om AEM Forms aan te roepen dat wordt geïmplementeerd op JBoss en met de EJB-verbindingsmodus.
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");
De EJB-verbindingsmodus instellen voor WebLogic
In het volgende Java-codevoorbeeld worden eigenschappen voor verbindingen ingesteld om AEM Forms aan te roepen dat wordt geïmplementeerd op WebLogic en met de EJB-verbindingsmodus.
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");
De EJB-verbindingsmodus instellen voor WebSphere
In het volgende Java-codevoorbeeld worden eigenschappen van een verbinding ingesteld om AEM Forms aan te roepen dat wordt geïmplementeerd op WebSphere en met de EJB-verbindingsmodus.
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");
De verbindingsmodus SOAP instellen
In het volgende Java-codevoorbeeld worden eigenschappen van verbindingen in de SOAP-modus ingesteld om AEM Forms aan te roepen dat wordt geïmplementeerd in 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");
Verbindingseigenschappen instellen wanneer servicebeveiliging is uitgeschakeld
In het volgende Java-codevoorbeeld worden verbindingseigenschappen ingesteld die vereist zijn om AEM Forms aan te roepen dat wordt geïmplementeerd op JBoss Application Server en wanneer de servicebeveiliging is uitgeschakeld.
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");
De SOAP-verbindingsmodus instellen met de time-outlimiet voor aangepaste aanvragen
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
Een Context-object gebruiken om AEM Forms aan te roepen
U kunt een com.adobe.idp.Context
object om een AEM Forms-service aan te roepen met een geverifieerde gebruiker (de com.adobe.idp.Context
-object staat voor een geverifieerde gebruiker). Wanneer u een com.adobe.idp.Context
-object, hoeft u de DSC_CREDENTIAL_USERNAME
of DSC_CREDENTIAL_PASSWORD
eigenschappen. U kunt een com.adobe.idp.Context
object wanneer gebruikers worden geautoriseerd met de opdracht AuthenticationManagerServiceClient
object authenticate
methode.
De authenticate
methode retourneert een AuthResult
object dat de resultaten van de verificatie bevat. U kunt een com.adobe.idp.Context
object door de constructor ervan aan te roepen. Roep vervolgens het com.adobe.idp.Context
object initPrincipal
en geeft de AuthResult
object, zoals in de volgende code wordt getoond:
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
In plaats van de DSC_CREDENTIAL_USERNAME
of DSC_CREDENTIAL_PASSWORD
eigenschappen, kunt u de ServiceClientFactory
object setContext
en geeft de com.adobe.idp.Context
object. Wanneer u een gebruiker van een AEM formulier gebruikt om een service aan te roepen, moet u ervoor zorgen dat deze gebruiker de benoemde rol heeft Services User
die vereist is om een AEM Forms-service aan te roepen.
Het volgende codevoorbeeld toont hoe te om een com.adobe.idp.Context
object binnen verbindingsinstellingen dat wordt gebruikt om een EncryptionServiceClient
object.
//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);
Oproepen van scenario's invoking_scenarios-1
De volgende aanroepende scenario's worden besproken in deze sectie:
- Een clienttoepassing die in een eigen Java Virtual Machine (JVM) wordt uitgevoerd, roept een zelfstandige AEM Forms-instantie aan.
- Een clienttoepassing die in een eigen JVM wordt uitgevoerd, roept geclusterde AEM Forms-instanties aan.
Clienttoepassing die een zelfstandige AEM Forms-instantie aanroept client-application-invoking-a-stand-alone-aem-forms-instance
In het volgende diagram ziet u een clienttoepassing die in een eigen JVM wordt uitgevoerd en een zelfstandige AEM Forms-instantie aanroept.
In dit scenario wordt een clienttoepassing uitgevoerd in een eigen JVM en worden AEM Forms-services aangeroepen.
Clienttoepassing die geclusterde AEM Forms-instanties aanroept client-application-invoking-clustered-aem-forms-instances
In het volgende diagram wordt een clienttoepassing weergegeven die in een eigen JVM wordt uitgevoerd en die AEM Forms-instanties aanroept die zich in een cluster bevinden.
Dit scenario is vergelijkbaar met een clienttoepassing die een zelfstandige AEM Forms-instantie aanroept. De URL van de provider is echter anders. Als een clienttoepassing verbinding wil maken met een specifieke J2EE-toepassingsserver, moet de toepassing de URL wijzigen om naar de specifieke J2EE-toepassingsserver te verwijzen.
Verwijzen naar een specifieke J2EE-toepassingsserver wordt niet aanbevolen omdat de verbinding tussen de clienttoepassing en AEM Forms wordt verbroken als de toepassingsserver wordt gestopt. Het wordt aanbevolen dat de provider-URL verwijst naar een JNDI-manager op celniveau in plaats van een specifieke J2EE-toepassingsserver.
Clienttoepassingen die de SOAP-verbindingsmodus gebruiken, kunnen de HTTP-taakverdelingpoort voor de cluster gebruiken. Clienttoepassingen die gebruikmaken van de EJB-verbindingsmodus kunnen verbinding maken met de EJB-poort van een specifieke J2EE-toepassingsserver. Met deze handeling wordt de taakverdeling tussen clusterknooppunten afgehandeld.
WebSphere
In het volgende voorbeeld wordt de inhoud getoond van een bestand jndi.properties dat wordt gebruikt om verbinding te maken met AEM Forms dat op WebSphere is geïmplementeerd.
java.naming.factory.initial=com.ibm.websphere.naming.
WsnInitialContextFactory
java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810
WebLogic
In het volgende voorbeeld wordt de inhoud getoond van een bestand jndi.properties dat wordt gebruikt om verbinding te maken met AEM Forms dat is geïmplementeerd op WebLogic.
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://appserver1:8001, appserver2:8001
JBoss
In het volgende voorbeeld wordt de inhoud getoond van een bestand jndi.properties dat wordt gebruikt om verbinding te maken met AEM Forms dat op JBoss wordt geïmplementeerd.
java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
appserver3:1099
Zie ook
Inclusief AEM Forms Java-bibliotheekbestanden
Gegevens doorgeven aan AEM Forms-services met de Java API
Een service aanroepen met een Java-clientbibliotheek
Gegevens doorgeven aan AEM Forms-services met de Java API passing-data-to-aem-forms-services-using-the-java-api
AEM Forms-servicetaken gebruiken of produceren doorgaans PDF-documenten. Wanneer u de dienst aanhaalt, soms is het noodzakelijk om een document van de PDF (of andere documenttypes zoals de gegevens van XML) tot de dienst over te gaan. Soms is het ook nodig om een PDF-document te verwerken dat van de service is geretourneerd. De Java-klasse waarmee u gegevens kunt doorgeven van en naar AEM Forms-services is com.adobe.idp.Document
.
AEM Forms-services accepteren een PDF-document niet als andere gegevenstypen, zoals een java.io.InputStream
object of een bytearray. A com.adobe.idp.Document
-object kan ook worden gebruikt om andere gegevenstypen, zoals XML-gegevens, aan services door te geven.
A com.adobe.idp.Document
Het object is een serialiseerbaar Java-type, zodat het kan worden doorgegeven via een RMI-aanroep. De ontvangende zijde kan (zelfde gastheer, zelfde klassenlader), lokaal (zelfde gastheer, verschillende klassenlader), of ver (verschillende gastheer) worden collocated. Het doorgeven van documentinhoud is voor elk geval geoptimaliseerd. Als de afzender en de ontvanger zich bijvoorbeeld op dezelfde host bevinden, wordt de inhoud doorgegeven via een lokaal bestandssysteem. (In sommige gevallen kunnen documenten in het geheugen worden doorgegeven.)
Afhankelijk van de com.adobe.idp.Document
objectgrootte, de gegevens worden binnen de com.adobe.idp.Document
object of opgeslagen op het bestandssysteem van de server. Eventuele tijdelijke opslagmiddelen die door de com.adobe.idp.Document
object wordt automatisch verwijderd bij het com.adobe.idp.Document
verwijdering. (Zie Documentobjecten verwijderen.)
Soms is het nodig om het inhoudstype van een com.adobe.idp.Document
-object voordat u het aan een service kunt doorgeven. Als een bewerking bijvoorbeeld een specifiek inhoudstype vereist, zoals application/pdf
wordt aangeraden het inhoudstype te bepalen. (Zie Het inhoudstype van een document bepalen.)
De com.adobe.idp.Document
-object probeert het inhoudstype te bepalen aan de hand van de opgegeven gegevens. Als het inhoudstype niet kan worden opgehaald uit de opgegeven gegevens (bijvoorbeeld wanneer de gegevens als een bytearray zijn opgegeven), stelt u het inhoudstype in. Als u het inhoudstype wilt instellen, roept u de opdracht com.adobe.idp.Document
object setContentType
methode. (Zie Het inhoudstype van een document bepalen)
Als secundaire bestanden zich op hetzelfde bestandssysteem bevinden, maakt u een com.adobe.idp.Document
object sneller is. Als secundaire bestanden zich op externe bestandssystemen bevinden, moet een kopieerbewerking worden uitgevoerd die de prestaties beïnvloedt.
Een toepassing kan beide com.adobe.idp.Document
en org.w3c.dom.Document
gegevenstypen. Zorg er echter voor dat u de org.w3c.dom.Document
gegevenstype. Voor informatie over het omzetten van een org.w3c.dom.Document
object naar een com.adobe.idp.Document
object, zie Snel starten (EJB-modus): Forms vooraf vullen met stroombare indelingen met de Java API.
com.adobe.idp.Document
de documentinformatie in delen van 2048 bytes of minder lezen. De volgende code leest bijvoorbeeld de documentinformatie in delen van 2048 bytes: // 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();
Zie ook
AEM Forms aanroepen met de Java API
Verbindingseigenschappen instellen
Documenten maken creating-documents
Een com.adobe.idp.Document
-object voordat u een servicebewerking aanroept waarvoor een PDF-document (of andere documenttypen) als invoerwaarde is vereist. De com.adobe.idp.Document
klasse biedt constructors waarmee u een document kunt maken van de volgende inhoudstypen:
- Een bytearray
- Een bestaande
com.adobe.idp.Document
object - A
java.io.File
object - A
java.io.InputStream
object - A
java.net.URL
object
Een document maken op basis van een bytearray creating-a-document-based-on-a-byte-array
In het volgende codevoorbeeld wordt een com.adobe.idp.Document
object dat is gebaseerd op een bytearray.
Een object Document maken dat is gebaseerd op een bytearray
Document myPDFDocument = new Document(myByteArray);
Een document maken op basis van een ander document creating-a-document-based-on-another-document
In het volgende codevoorbeeld wordt een com.adobe.idp.Document
object dat is gebaseerd op een ander object com.adobe.idp.Document
object.
Een object Document maken dat is gebaseerd op een ander document
//Create a Document object based on a byte array
InputStream is = new FileInputStream("C:\\Map.pdf");
int len = is.available();
byte [] myByteArray = new byte[len];
int i = 0;
while (i < len) {
i += is.read(myByteArray, i, len);
}
Document myPDFDocument = new Document(myByteArray);
//Create another Document object
Document anotherDocument = new Document(myPDFDocument);
Een document maken op basis van een bestand creating-a-document-based-on-a-file
In het volgende codevoorbeeld wordt een com.adobe.idp.Document
object dat is gebaseerd op een PDF-bestand met de naam map.pdf. Dit bestand bevindt zich in de hoofdmap van de C-vaste schijf. Deze constructor probeert het MIME-inhoudstype in te stellen van de com.adobe.idp.Document
met de bestandsnaamextensie.
De com.adobe.idp.Document
constructor die een java.io.File
-object accepteert ook een Booleaanse parameter. Door deze parameter in te stellen op true
de com.adobe.idp.Document
verwijdert het bestand. Dit betekent dat u het bestand niet hoeft te verwijderen nadat u het hebt doorgegeven aan de com.adobe.idp.Document
constructor.
Deze parameter instellen op false
betekent dat u de eigendom van dit bestand behoudt. Deze parameter instellen op true
is efficiënter. De reden is dat de com.adobe.idp.Document
kan het bestand rechtstreeks naar het lokale beheerde gebied verplaatsen in plaats van het te kopiëren (wat langzamer is).
Een object Document maken dat is gebaseerd op een PDF-bestand
//Create a Document object based on the map.pdf source file
File mySourceMap = new File("C:\\map.pdf");
Document myPDFDocument = new Document(mySourceMap,true);
Een document maken op basis van een InputStream-object creating-a-document-based-on-an-inputstream-object
In het volgende Java-codevoorbeeld wordt een com.adobe.idp.Document
object dat is gebaseerd op een java.io.InputStream
object.
Een document maken op basis van een InputStream-object
//Create a Document object based on an InputStream object
InputStream is = new FileInputStream("C:\\Map.pdf");
Document myPDFDocument = new Document(is);
Een document maken op basis van inhoud die toegankelijk is via een URL creating-a-document-based-on-content-accessible-from-an-url
In het volgende Java-codevoorbeeld wordt een com.adobe.idp.Document
object dat is gebaseerd op een PDF-bestand met de naam map.pdf. Dit bestand bevindt zich in een webtoepassing met de naam WebApp
dat wordt uitgevoerd localhost
. Deze constructor probeert het com.adobe.idp.Document
MIME-inhoudstype van het object met het inhoudstype dat met het URL-protocol wordt geretourneerd.
De URL die aan de com.adobe.idp.Document
object wordt altijd gelezen aan de zijde waar het origineel com.adobe.idp.Document
-object wordt gemaakt, zoals in dit voorbeeld wordt getoond:
Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));
Het bestand c:/temp/input.pdf moet zich op de clientcomputer bevinden (niet op de servercomputer). De clientcomputer is waar de URL wordt gelezen en waar de com.adobe.idp.Document
object is gemaakt.
Een document maken op basis van inhoud die toegankelijk is via een 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);
Zie ook
AEM Forms aanroepen met de Java API
Verbindingseigenschappen instellen
Teruggestuurde documenten verwerken handling-returned-documents
De verrichtingen van de dienst die een document van de PDF (of andere gegevenstypes zoals de gegevens van XML) als outputwaarde terugkeren keren keren een com.adobe.idp.Document
object. Nadat u een com.adobe.idp.Document
kunt u het object omzetten in de volgende indelingen:
- A
java.io.File
object - A
java.io.InputStream
object - Een bytearray
Met de volgende coderegel wordt een com.adobe.idp.Document
object naar een java.io.InputStream
object. aannemen dat myPDFDocument
vertegenwoordigt a com.adobe.idp.Document
object:
java.io.InputStream resultStream = myDocument.getInputStream();
U kunt ook de inhoud van een com.adobe.idp.Document
naar een lokaal bestand door de volgende taken uit te voeren:
- Een
java.io.File
object. - De
com.adobe.idp.Document
objectcopyToFile
en geeft dejava.io.File
object.
In het volgende codevoorbeeld wordt de inhoud van een com.adobe.idp.Document
object naar een bestand met de naam anotherMap.pdf.
De inhoud van een documentobject kopiëren naar een bestand
File outFile = new File("C:\\AnotherMap.pdf");
myDocument.copyToFile (outFile);
Zie ook
AEM Forms aanroepen met de Java API
Verbindingseigenschappen instellen
Het inhoudstype van een document bepalen determining-the-content-type-of-a-document
Het MIME-type van een com.adobe.idp.Document
door het object aan te roepen com.adobe.idp.Document
object getContentType
methode. Deze methode retourneert een tekenreekswaarde die het inhoudstype van het dialoogvenster com.adobe.idp.Document
object. In de volgende tabel worden de verschillende inhoudstypen beschreven die AEM Forms retourneert.
application/pdf
application/vnd.adobe.xdp+xml
text/xml
application/vnd.fdf
application/vnd.adobe.xfdf
application/rdf+xml
application/octet-stream
NULL
In het volgende codevoorbeeld wordt het inhoudstype van een com.adobe.idp.Document
object.
Het inhoudstype van een object Document bepalen
//Determine the content type of the Document object
String ct = myDocument.getContentType();
System.out.println("The content type of the Document object is " +ct);
Zie ook
AEM Forms aanroepen met de Java API
Verbindingseigenschappen instellen
Documentobjecten verwijderen disposing-document-objects
Wanneer u niet langer een Document
-object wordt aangeraden het te verwijderen door het dispose
methode. Elk Document
-object gebruikt een bestandsdescriptor en maar liefst 75 MB aan RAM-ruimte op het hostplatform van uw toepassing. Indien een Document
Het object wordt niet verwijderd. Het Java Garage-verzamelingsproces verwijdert het. Echter, door het eerder te verwijderen met behulp van de dispose
kunt u geheugen vrijmaken dat door de Document
object.
Zie ook
AEM Forms aanroepen met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Een service aanroepen met een Java-clientbibliotheek
Een service aanroepen met een Java-clientbibliotheek invoking-a-service-using-a-java-client-library
De de dienstverrichtingen van AEM Forms kunnen worden aangehaald door sterk getypte API van de dienst te gebruiken, die als een cliëntbibliotheek van Java wordt bekend. A Java-clientbibliotheek is een reeks concrete klassen die toegang tot de diensten verlenen die in de de dienstcontainer worden opgesteld. U instantieert een Java-object dat de service vertegenwoordigt die moet worden aangeroepen in plaats van een InvocationRequest
met de API voor oproepen. De oproepings-API wordt gebruikt om processen, zoals langlevende processen, aan te roepen die in Workbench zijn gemaakt. (Zie Het aanhalen van mens-Centric langlevende Processen.)
Als u een servicebewerking wilt uitvoeren, roept u een methode aan die tot het Java-object behoort. Een Java-clientbibliotheek bevat methoden die doorgaans een-op-een toewijzen aan servicebewerkingen. Wanneer u een Java-clientbibliotheek gebruikt, stelt u vereiste verbindingseigenschappen in. (Zie Verbindingseigenschappen instellen.)
Nadat u verbindingseigenschappen hebt ingesteld, maakt u een ServiceClientFactory
object dat wordt gebruikt om een Java-object te instantiëren waarmee u een service kunt aanroepen. Elke service met een Java-clientbibliotheek heeft een overeenkomstig clientobject. Als u bijvoorbeeld de Repository-service wilt aanroepen, maakt u een ResourceRepositoryClient
object door de constructor ervan te gebruiken en door te geven ServiceClientFactory
object. De ServiceClientFactory
-object is verantwoordelijk voor het onderhoud van de verbindingsinstellingen die vereist zijn om AEM Forms-services aan te roepen.
Hoewel u een ServiceClientFactory
is gewoonlijk snel, is sommige overheadkosten geïmpliceerd wanneer de fabriek voor het eerst wordt gebruikt. Dit object is geoptimaliseerd voor hergebruik en gebruik daarom, indien mogelijk, hetzelfde ServiceClientFactory
-object wanneer u meerdere Java-client-objecten maakt. Maak dus geen aparte ServiceClientFactory
object voor elk clientbibliotheekobject dat u maakt.
Er is een Manager die van de Gebruiker plaatst die het leven van de bevestiging van SAML controleert die binnen is com.adobe.idp.Context
object dat invloed heeft op de ServiceClientFactory
object. Deze instelling bepaalt de levensduur van alle verificatiecontext in AEM Forms, inclusief alle aanroepen die worden uitgevoerd met de Java API. Door gebrek, de tijdspanne waarin ServiceCleintFactory
-object kan worden gebruikt binnen twee uur.
writeResource
bewerking wordt aangeroepen. Deze verrichting plaatst een nieuwe middel in de bewaarplaats.U kunt de Repository-service activeren door een Java-clientbibliotheek te gebruiken en de volgende stappen uit te voeren:
-
Neem client-JAR-bestanden, zoals de adobe-repository-client.jar, op in het klassenpad van uw Java-project. Voor informatie over de locatie van deze bestanden raadpleegt u Inclusief AEM Forms Java-bibliotheekbestanden.
-
Stel verbindingseigenschappen in die vereist zijn om een service aan te roepen.
-
Een
ServiceClientFactory
door het object aan te roepenServiceClientFactory
statisch objectcreateInstance
en het doorgeven van dejava.util.Properties
object dat verbindingseigenschappen bevat. -
Een
ResourceRepositoryClient
object door de constructor ervan te gebruiken en door te gevenServiceClientFactory
object. Gebruik deResourceRepositoryClient
object om bewerkingen van de Repository-service aan te roepen. -
Een
RepositoryInfomodelFactoryBean
object door de constructor ervan te gebruiken en door te gevennull
. Met dit object kunt u eenResource
object dat de inhoud vertegenwoordigt die aan de gegevensopslagruimte is toegevoegd. -
Een
Resource
door het object aan te roepenRepositoryInfomodelFactoryBean
objectnewImage
en geeft de volgende waarden door:- Een unieke id-waarde door het opgeven van
new Id()
. - Een unieke UUID-waarde door het opgeven van
new Lid()
. - De naam van de bron. U kunt de bestandsnaam van het XDP-bestand opgeven.
De geretourneerde waarde omzetten in
Resource
. - Een unieke id-waarde door het opgeven van
-
Een
ResourceContent
door het object aan te roepenRepositoryInfomodelFactoryBean
objectnewImage
en de geretourneerde waarde naarResourceContent
. Dit object vertegenwoordigt de inhoud die aan de gegevensopslagruimte wordt toegevoegd. -
Een
com.adobe.idp.Document
object door eenjava.io.FileInputStream
object dat het XDP-bestand opslaat dat aan de gegevensopslagruimte moet worden toegevoegd. (Zie Een document maken op basis van een InputStream-object.) -
Voeg de inhoud van de
com.adobe.idp.Document
aanResourceContent
door het object aan te roepenResourceContent
objectsetDataDocument
methode. Geef decom.adobe.idp.Document
object. -
Stel het MIME-type van het XDP-bestand in om aan de opslagplaats toe te voegen door het
ResourceContent
objectsetMimeType
methode en doorgevenapplication/vnd.adobe.xdp+xml
. -
Voeg de inhoud van de
ResourceContent
aanResource
door het object aan te roepenResource
object 'ssetContent
en het doorgeven van deResourceContent
object. -
Voeg een beschrijving van de bron toe door de
Resource
object 'ssetDescription
methode en het overgaan van een koordwaarde die een beschrijving van het middel vertegenwoordigt. -
Voeg het formulierontwerp toe aan de gegevensopslagruimte door de
ResourceRepositoryClient
objectwriteResource
en geeft de volgende waarden door:- Een tekenreekswaarde die het pad naar de bronverzameling opgeeft die de nieuwe bron bevat
- De
Resource
object dat is gemaakt
Zie ook
Snel starten (EJB-modus): Een bron schrijven met de Java API
AEM Forms aanroepen met de Java API
Inclusief AEM Forms Java-bibliotheekbestanden
Een kortstondig proces aanroepen met de API voor aanroepen invoking-a-short-lived-process-using-the-invocation-api
U kunt een kortstondig proces aanroepen met de Java Invocation-API. Wanneer u een kortstondig proces met de Inroeping API aanroept, geeft u vereiste parameterwaarden door door te gebruiken java.util.HashMap
object. Voor elke parameter om tot de dienst over te gaan, roep java.util.HashMap
object put
methode en specificeer het naam-waarde paar dat door de dienst wordt vereist om de gespecificeerde verrichting uit te voeren. Geef de exacte naam op van de parameters die bij het kortstondige proces horen.
De discussie gaat hier over het gebruik van de oproepings-API om het volgende kortstondige AEM Forms-proces met de naam MyApplication/EncryptDocument
.
MyApplication/EncryptDocument
met Workbench. (Zie Workbench gebruiken.)Wanneer dit proces wordt aangeroepen, worden de volgende handelingen uitgevoerd:
- Verkrijgt het onbeveiligde document van de PDF dat tot het proces wordt overgegaan. Deze actie is gebaseerd op de
SetValue
bewerking. De invoerparameter voor dit proces is eendocument
procesvariabele met de naaminDoc
. - Hiermee versleutelt u het PDF-document met een wachtwoord. Deze actie is gebaseerd op de
PasswordEncryptPDF
bewerking. Het met wachtwoord gecodeerde PDF-document wordt geretourneerd in een procesvariabele met de naamoutDoc
.
Het kortstondige MyApplication/EncryptDocument-proces aanroepen met de Java-oproepings-API invoke-the-myapplication-encryptdocument-short-lived-process-using-the-java-invocation-api
De MyApplication/EncryptDocument
kortstondig proces met de Java-oproepings-API:
-
Neem client-JAR-bestanden, zoals adobe-livecycle-client.jar, op in het klassenpad van uw Java-project. (Zie Inclusief AEM Forms Java-bibliotheekbestanden.)
-
Een
ServiceClientFactory
object dat verbindingseigenschappen bevat. (Zie Verbindingseigenschappen instellen.) -
Een
ServiceClient
object door de constructor ervan te gebruiken en door te gevenServiceClientFactory
object. AServiceClient
kunt u een servicebewerking aanroepen. Het behandelt taken zoals het lokaliseren van, het verzenden van, en het verpletteren van oproepingsverzoeken. -
Een
java.util.HashMap
object met behulp van de constructor. -
De
java.util.HashMap
objectput
methode voor elke inputparameter om tot het langlevende proces over te gaan. OmdatMyApplication/EncryptDocument
kortstondig proces vereist één invoerparameter van typeDocument
, hoeft u alleen deput
eenmaal, zoals in het volgende voorbeeld wordt getoond.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);
-
Een
InvocationRequest
door het object aan te roepenServiceClientFactory
objectcreateInvocationRequest
en geeft de volgende waarden door:- Een tekenreekswaarde die de naam aangeeft van het proces met een lange levensduur dat moet worden aangeroepen. Om het
MyApplication/EncryptDocument
proces, specificerenMyApplication/EncryptDocument
. - Een tekenreekswaarde die staat voor de naam van de procesbewerking. Doorgaans is de naam van een kortstondige procesbewerking
invoke
. - De
java.util.HashMap
object dat de parameterwaarden bevat die de servicebewerking vereist. - Een Booleaanse waarde die
true
, die een synchrone aanvraag maakt (deze waarde is van toepassing om een kortstondig proces aan te roepen).
- Een tekenreekswaarde die de naam aangeeft van het proces met een lange levensduur dat moet worden aangeroepen. Om het
-
Verzend het oproepingsverzoek naar de service door het
ServiceClient
objectinvoke
en het doorgeven van deInvocationRequest
object. Deinvoke
methode retourneert eenInvocationReponse
object.note note NOTE Een proces van lange duur kan worden aangeroepen door de waarde door te geven false
als vierde parameter van decreateInvocationRequest
methode. De waarde doorgevenfalse
maakt een asynchrone aanvraag. -
Haal de geretourneerde waarde van het proces op door de
InvocationReponse
objectgetOutputParameter
methode en het overgaan van een koordwaarde die de naam van de outputparameter specificeert. Geef in dit gevaloutDoc
(outDoc
is de naam van de uitvoerparameter voor deMyApplication/EncryptDocument
proces). De geretourneerde waarde omzetten inDocument
, zoals in het volgende voorbeeld wordt getoond.code language-as3 InvocationResponse response = myServiceClient.invoke(request); Document encryptDoc = (Document) response.getOutputParameter("outDoc");
-
Een
java.io.File
en zorg dat de bestandsextensie .pdf is. -
De
com.adobe.idp.Document
objectcopyToFile
methode om de inhoud van decom.adobe.idp.Document
naar het bestand. Zorg ervoor dat u decom.adobe.idp.Document
object dat is geretourneerd door degetOutputParameter
methode.
Zie ook
Snel starten: Een kortstondig proces aanroepen met de API voor aanroepen
Het aanhalen van mens-Centric langlevende Processen
Inclusief AEM Forms Java-bibliotheekbestanden