AEM Forms aanroepen met de Java API invoking-aem-forms-using-the-javaapi
de Steekproeven en de voorbeelden in dit document zijn slechts voor AEM Forms op milieu JEE.
AEM Forms kan worden aangeroepen met de AEM Forms Java API. 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. Met deze sterk getypeerde API's kunt u Java-toepassingen ontwikkelen die AEM Forms aanroepen.
De oproepings-API zijn klassen die zich in het com.adobe.idp.dsc
-pakket bevinden. 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 de methode encryptPDFUsingPassword
van het object EncryptionServiceClient
aan te roepen.
De Java API ondersteunt de volgende functies:
- Het vervoerprotocol van RMI voor verre aanroeping
- VM-transport voor lokale aanroeping
- SOAP voor externe aanroeping
- Andere verificatie, zoals gebruikersnaam en wachtwoord
- Synchrone en asynchrone oproepverzoeken
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 klassepad van uw 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 Plaatsende verbindingseigenschappen.)
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
< installeer folder >/sdk/cliënt-libs \ derde
-
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.
-
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 folder ( [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.
-
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 zijn. De modus EJB maakt gebruik van het RMI/IIOP-protocol en de prestaties van de modus EJB zijn beter dan die van de SOAP. De SOAP modus wordt gebruikt om een J2EE-toepassingsserverafhankelijkheid te elimineren of wanneer een firewall zich tussen AEM Forms en de clienttoepassing bevindt. De SOAP wijze 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 verbindingswijze EJB gebruikt, vertegenwoordigt deze waarde URL van de J2EE toepassingsserver waarop AEM Forms wordt opgesteld. 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
opgeven. 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 SOAP verbindingswijze 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
opgeven (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 verbindingswijze gebruikt, specificeer
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
voor deze waarde. GeefServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
op als u de SOAP-verbindingsmodus gebruikt. -
DSC_SERVER_TYPE: Specificeert de J2EE toepassingsserver waarop AEM Forms wordt opgesteld. Geldige waarden zijn
JBoss
,WebSphere
,WebLogic
.- Wanneer u deze eigenschap connection instelt op
WebSphere
, wordt de waardejava.naming.factory.initial
ingesteld opcom.ibm.ws.naming.util.WsnInitCtxFactory
. - Wanneer u deze eigenschap connection instelt op
WebLogic
, wordt de waardejava.naming.factory.initial
ingesteld opweblogic.jndi.WLInitialContextFactory
. - Als u deze eigenschap voor verbinding instelt op
JBoss
, wordt de waardejava.naming.factory.initial
ingesteld oporg.jnp.interfaces.NamingContextFactory
. - U kunt de eigenschap
java.naming.factory.initial
instellen op een waarde die aan uw vereisten voldoet als u de standaardwaarden niet wilt gebruiken.
note note NOTE In plaats van een tekenreeks te gebruiken om de eigenschap DSC_SERVER_TYPE
connection in te stellen, kunt u een statisch lid van de klasseServiceClientFactoryProperties
gebruiken. De volgende waarden kunnen worden gebruikt:ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE
,ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE
ofServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE
. - Wanneer u deze eigenschap connection instelt op
-
DSC_CREDENTIAL_USERNAME: specificeert de AEM de gebruikersnaam van de vormengebruiker. 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: specificeert de overeenkomstige wachtwoordwaarde. Als de de dienstveiligheid gehandicapt is, is het niet noodzakelijk om dit verbindingsbezit te specificeren.
-
DSC_REQUEST_TIMEOUT: de grens van de standaardverzoekonderbreking voor het SOAP verzoek is 120000 milliseconden (20 minuten). Soms kan een aanvraag langer duren om de bewerking te voltooien. Een SOAP aanvraag die een grote set records ophaalt, kan bijvoorbeeld een langere time-outlimiet vereisen. U kunt
ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT
gebruiken om de de onderbrekingsgrens van de verzoekvraag voor de SOAP verzoeken te verhogen.nota: Slechts steunen de op SOAP-gebaseerde aanroepen het bezit DSC_REQUEST_TIMEOUT.
Voer de volgende taken uit om verbindingseigenschappen in te stellen:
-
Maak een
java.util.Properties
-object met behulp van de constructor. -
Als u de eigenschap
DSC_DEFAULT_EJB_ENDPOINT
connection wilt instellen, roept u de methodejava.util.Properties
objectsetProperty
aan en geeft u de volgende waarden door:- De opsommingswaarde
ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
- Een tekenreekswaarde die de URL van de J2EE-toepassingsserver opgeeft die als host fungeert voor AEM Forms
note note NOTE Als u de SOAP verbindingsmodus gebruikt, geeft u de opsommingswaarde ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT
op in plaats van de opsommingswaardeServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT
. - De opsommingswaarde
-
Als u de eigenschap
DSC_TRANSPORT_PROTOCOL
connection wilt instellen, roept u de methodejava.util.Properties
objectsetProperty
aan en geeft u de volgende waarden door:- De opsommingswaarde
ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL
- De opsommingswaarde
ServiceClientFactoryProperties.DSC_EJB_PROTOCOL
note note NOTE Als u de SOAP verbindingswijze gebruikt, specificeer de ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL
opsommingswaarde in plaats van deServiceClientFactoryProperties.DSC_EJB_PROTOCOL
opsommingswaarde. - De opsommingswaarde
-
Als u de eigenschap
DSC_SERVER_TYPE
connection wilt instellen, roept u de methodejava.util.Properties
objectsetProperty
aan en geeft u de volgende waarden door:-
De
ServiceClientFactoryProperties.DSC_SERVER_TYPE
opsommingswaarde -
Een tekenreekswaarde die de J2EE-toepassingsserver opgeeft die als host fungeert voor AEM Forms (geef bijvoorbeeld
JBoss
op als AEM Forms op JBoss wordt geïmplementeerd).- Als u de eigenschap
DSC_CREDENTIAL_USERNAME
connection wilt instellen, roept u de methodejava.util.Properties
objectsetProperty
aan en geeft u de volgende waarden door:
- Als u de eigenschap
-
De opsommingswaarde
ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME
-
Een tekenreekswaarde die de gebruikersnaam opgeeft die vereist is om AEM Forms aan te roepen
- Als u de eigenschap
DSC_CREDENTIAL_PASSWORD
connection wilt instellen, roept u de methodejava.util.Properties
objectsetProperty
aan en geeft u de volgende waarden door:
- Als u de eigenschap
-
De opsommingswaarde
ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD
-
Een tekenreekswaarde die de bijbehorende wachtwoordwaarde opgeeft
-
plaatsend de EJB verbindingswijze 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");
plaatsend de EJB verbindingswijze 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");
plaatsend de EJB verbindingswijze 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");
plaatsend de SOAP verbindingswijze
In het volgende Java-codevoorbeeld worden eigenschappen van een verbinding in SOAP modus ingesteld om AEM Forms aan te roepen dat wordt geïmplementeerd op 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");
plaatsende verbindingseigenschappen wanneer de dienstveiligheid gehandicapt is
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");
plaatsend de SOAP verbindingswijze met de grens van de douaneverzoekonderbreking
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
Gebruikend een voorwerp van de Context om AEM Forms aan te halen
U kunt een com.adobe.idp.Context
-object gebruiken om een AEM Forms-service met een geverifieerde gebruiker aan te roepen (het com.adobe.idp.Context
-object vertegenwoordigt een geverifieerde gebruiker). Wanneer u een com.adobe.idp.Context
-object gebruikt, hoeft u de eigenschappen DSC_CREDENTIAL_USERNAME
of DSC_CREDENTIAL_PASSWORD
niet in te stellen. U kunt een com.adobe.idp.Context
-object verkrijgen wanneer u gebruikers ontwerpt met de methode AuthenticationManagerServiceClient
object authenticate
.
De methode authenticate
retourneert een AuthResult
-object dat de resultaten van de verificatie bevat. U kunt een com.adobe.idp.Context
-object maken door de constructor ervan aan te roepen. Roep vervolgens de methode initPrincipal
van het object com.adobe.idp.Context
aan en geef het object AuthResult
door, zoals in de volgende code wordt getoond:
Context myCtx = new Context();
myCtx.initPrincipal(authResult);
In plaats van de eigenschappen DSC_CREDENTIAL_USERNAME
of DSC_CREDENTIAL_PASSWORD
in te stellen, kunt u de methode ServiceClientFactory
van het object setContext
aanroepen en het object com.adobe.idp.Context
doorgeven. Wanneer u een gebruiker van een AEM gebruikt om een service aan te roepen, moet u ervoor zorgen dat deze de rol Services User
heeft die nodig is om een AEM Forms-service aan te roepen.
In het volgende codevoorbeeld wordt getoond hoe u een com.adobe.idp.Context
-object gebruikt binnen verbindingsinstellingen die worden gebruikt om een EncryptionServiceClient
-object te maken.
//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 in een cluster oproept.
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
Weblogica
Het volgende voorbeeld toont de inhoud van het bestand jndi.properties dat wordt gebruikt om verbinding te maken met AEM Forms dat is gedistribueerd via 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 Java-bibliotheekbestanden van AEM Forms
Gegevens doorgeven aan AEM Forms-services met gebruik van de Java-API
Een service aanroepen met behulp van een Java-clientbibliotheek
Gegevens doorgeven aan AEM Forms-services met gebruik van de Java-API passing-data-to-aem-forms-services-using-the-java-api
Bij AEM Forms-servicetaken worden doorgaans PDF-documenten gebruikt of geproduceerd. 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. Een com.adobe.idp.Document
-object kan ook worden gebruikt om andere gegevenstypen, zoals XML-gegevens, aan services door te geven.
Een com.adobe.idp.Document
-object is een Java-type met serienummering, 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 objectgrootte van com.adobe.idp.Document
worden de gegevens binnen het com.adobe.idp.Document
-object vervoerd of op het bestandssysteem van de server opgeslagen. Eventuele tijdelijke opslagbronnen die door het object com.adobe.idp.Document
worden gebruikt, worden automatisch verwijderd wanneer com.adobe.idp.Document
wordt verwijderd. (Zie het Verwerpen de voorwerpen van het Document.)
Soms is het nodig het inhoudstype van een com.adobe.idp.Document
-object te kennen voordat u het aan een service kunt doorgeven. Als een bewerking bijvoorbeeld een specifiek inhoudstype vereist, zoals application/pdf
, wordt u aangeraden het inhoudstype te bepalen. (Zie Bepalend het inhoudstype van een document.)
Het com.adobe.idp.Document
-object probeert het inhoudstype te bepalen aan de hand van de verschafte gegevens. Als het inhoudstype niet kan worden opgehaald uit de opgegeven gegevens (bijvoorbeeld wanneer de gegevens zijn opgegeven als een bytearray), stelt u het inhoudstype in. Als u het inhoudstype wilt instellen, roept u de methode setContentType
van het object com.adobe.idp.Document
aan. (Zie Bepalend het inhoudstype van een document)
Als secundaire bestanden zich op hetzelfde bestandssysteem bevinden, kunt u sneller een com.adobe.idp.Document
-object maken. Als secundaire bestanden zich op externe bestandssystemen bevinden, moet er een kopieerbewerking worden uitgevoerd die de prestaties beïnvloedt.
Een toepassing kan zowel com.adobe.idp.Document
als org.w3c.dom.Document
gegevenstypen bevatten. Zorg er echter voor dat u het gegevenstype org.w3c.dom.Document
volledig kwalificeert. Voor informatie over het omzetten van een org.w3c.dom.Document
voorwerp in een com.adobe.idp.Document
voorwerp, zie Snel Begin (wijze EJB): Prepopulating Forms met Stroombare Lay-outs die Java API gebruiken.
com.adobe.idp.Document
-object gebruikt, leest u de documentinformatie in delen van 2048 bytes of minder. 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
Documenten maken creating-documents
Maak een com.adobe.idp.Document
-object voordat u een servicebewerking aanroept waarvoor een PDF-document (of andere documenttypen) als invoerwaarde is vereist. De klasse com.adobe.idp.Document
biedt constructors waarmee u een document kunt maken van de volgende inhoudstypen:
- Een bytearray
- Een bestaand
com.adobe.idp.Document
-object - Een object
java.io.File
- Een object
java.io.InputStream
- Een object
java.net.URL
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 gemaakt dat is gebaseerd op een bytearray.
Creërend een voorwerp van het Document dat op een byteserie gebaseerd is
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 gemaakt dat is gebaseerd op een ander com.adobe.idp.Document
-object.
Creërend een voorwerp van het Document dat op een ander document gebaseerd is
//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
Het volgende codevoorbeeld leidt tot een com.adobe.idp.Document
voorwerp dat op een PDF dossier genoemd map.pdf gebaseerd is. Dit bestand bevindt zich in de hoofdmap van de C-vaste schijf. Deze constructor probeert het MIME-inhoudstype van het com.adobe.idp.Document
-object in te stellen met de bestandsnaamextensie.
De constructor com.adobe.idp.Document
die een java.io.File
-object accepteert, accepteert ook een Booleaanse parameter. Door deze parameter in te stellen op true
, verwijdert het com.adobe.idp.Document
-object het bestand. Deze handeling houdt in dat u het bestand niet hoeft te verwijderen nadat u het hebt doorgegeven aan de constructor com.adobe.idp.Document
.
Als u deze parameter instelt op false
, blijft de eigendom van dit bestand behouden. Het instellen van deze parameter op true
is efficiënter. De reden hiervoor is dat het com.adobe.idp.Document
-object het bestand rechtstreeks naar het lokale beheerde gebied kan verplaatsen in plaats van het te kopiëren (wat langzamer is).
Creërend een voorwerp van het Document dat op een dossier van PDF gebaseerd is
//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 object com.adobe.idp.Document
gemaakt dat is gebaseerd op een object java.io.InputStream
.
Creërend een document dat op een voorwerp InputStream wordt gebaseerd
//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
Het volgende de codevoorbeeld van Java leidt tot een com.adobe.idp.Document
voorwerp dat op een PDF dossier genoemd map.pdf gebaseerd is. Dit bestand bevindt zich in een webtoepassing met de naam WebApp
die wordt uitgevoerd op localhost
. Deze constructor probeert het MIME-inhoudstype van het com.adobe.idp.Document
-object in te stellen met het inhoudstype dat met het URL-protocol wordt geretourneerd.
De URL die aan het object com.adobe.idp.Document
wordt geleverd, wordt altijd gelezen aan de zijde waar het oorspronkelijke object com.adobe.idp.Document
is gemaakt, zoals in dit voorbeeld wordt getoond:
Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));
Het c:/temp/input.pdf-bestand moet zich op de clientcomputer bevinden (niet op de servercomputer). Het is de clientcomputer waar de URL wordt gelezen en waar het com.adobe.idp.Document
object is gemaakt.
Creërend een document dat op inhoud toegankelijk van een URL wordt gebaseerd
//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
Geretourneerde documenten afhandelen handling-returned-documents
Servicebewerkingen die een PDF-document (of andere gegevenstypen zoals XML-gegevens) als uitvoerwaarde retourneren, retourneren een com.adobe.idp.Document
object. Nadat u een com.adobe.idp.Document
object hebt ontvangen, kunt u het converteren naar de volgende indelingen:
- Een
java.io.File
object - Een
java.io.InputStream
object - Een bytearray
De volgende coderegel zet een com.adobe.idp.Document
-object om in een java.io.InputStream
-object. Stel dat myPDFDocument
een com.adobe.idp.Document
-object vertegenwoordigt:
java.io.InputStream resultStream = myDocument.getInputStream();
Op dezelfde manier kunt u de inhoud van een com.adobe.idp.Document
naar een lokaal bestand kopiëren door de volgende taken uit te voeren:
- Maak een
java.io.File
-object. - Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan en geef het objectjava.io.File
door.
Het volgende codevoorbeeld kopieert de inhoud van a com.adobe.idp.Document
voorwerp aan een dossier genoemd anotherMap.pdf.
Kopieert de inhoud van een documentvoorwerp aan een dossier
File outFile = new File("C:\\AnotherMap.pdf");
myDocument.copyToFile (outFile);
zie ook
Het inhoudstype van een document bepalen determining-the-content-type-of-a-document
Bepaal het MIME-type van een com.adobe.idp.Document
-object door de methode com.adobe.idp.Document
object getContentType
aan te roepen. Deze methode retourneert een tekenreekswaarde die het inhoudstype van het com.adobe.idp.Document
-object opgeeft. 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
Het volgende codevoorbeeld bepaalt het inhoudstype van een com.adobe.idp.Document
voorwerp.
Bepalend het inhoudstype van een voorwerp van het 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);
zie ook
Documentobjecten verwijderen disposing-document-objects
Wanneer u een Document
-object niet meer nodig hebt, wordt u aangeraden het te verwijderen door de dispose
-methode aan te roepen. Elk Document
-object gebruikt een bestandsdescriptor en maar liefst 75 MB aan RAM-ruimte op het hostplatform van uw toepassing. Als een Document
-object niet wordt verwijderd, verwijdert het Java Garage-verzamelingsproces het object. Als u deze methode echter eerder verwijdert met de methode dispose
, kunt u het geheugen dat door het object Document
wordt gebruikt, vrijmaken.
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 de cliëntbibliotheek van Java 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
-object te maken met de Invocation API. 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 de vereiste verbindingseigenschappen in. (Zie Plaatsende verbindingseigenschappen.)
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 met de constructor ervan en geeft u het ServiceClientFactory
-object door. Het ServiceClientFactory
object is verantwoordelijk voor het behoud van de verbindingsinstellingen die vereist zijn voor het aanroepen van AEM Forms-services.
Hoewel het verkrijgen van een ServiceClientFactory
doorgaans snel is, is er enige overhead van belang wanneer de factory 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 afzonderlijk ServiceClientFactory
-object voor elk clientbibliotheekobject dat u maakt.
Er is een instelling voor Gebruikersbeheer die de levensduur van de SAML-bewering bepaalt die zich binnen het com.adobe.idp.Context
-object bevindt dat het ServiceClientFactory
-object beïnvloedt. Deze instelling bepaalt de levensduur van alle verificatiecontext in AEM Forms, inclusief alle aanroepen die worden uitgevoerd met de Java API. Standaard kan een ServiceCleintFactory
-object twee uur worden gebruikt.
writeResource
van de Repository-service aangeroepen. Met deze bewerking plaatst u een nieuwe bron in de opslagplaats.U kunt de service Opslagplaats aanroepen door gebruik te maken van een Java-clientbibliotheek en de volgende stappen uit te voeren:
-
Neem jar-bestanden van de client op, zoals de adobe-repository-client.jar, in het klassenpad van uw Java-project. Voor informatie over de plaats van deze dossiers, zie Inclusief de bibliotheekdossiers van AEM Forms Java.
-
Stel verbindingseigenschappen in die vereist zijn om een service aan te roepen.
-
Maak een
ServiceClientFactory
-object door de statische methode van hetServiceClientFactory
objectcreateInstance
aan te roepen en hetjava.util.Properties
-object dat verbindingseigenschappen bevat, door te geven. -
Maak een
ResourceRepositoryClient
object door de constructor te gebruiken en het object door teServiceClientFactory
geven. Gebruik hetResourceRepositoryClient
object om bewerkingen van de opslagplaatsservice te activeren. -
Maak een object met behulp van de constructor en geef
null
eenRepositoryInfomodelFactoryBean
Met dit object kunt u eenResource
object maken dat de inhoud vertegenwoordigt die aan de opslagplaats wordt toegevoegd. -
Maak een
Resource
object door de methode vannewImage
hetRepositoryInfomodelFactoryBean
object aan te roepen en de volgende waarden door te geven:- Een unieke ID-waarde door
new Id()
. - Een unieke UUID-waarde door
new Lid()
op te geven. - De naam van de bron. U kunt de bestandsnaam van het XDP-bestand opgeven.
De geretourneerde waarde wordt gecast naar
Resource
. - Een unieke ID-waarde door
-
Maak een
ResourceContent
-object door de methodeRepositoryInfomodelFactoryBean
objectnewImage
aan te roepen en de geretourneerde waarde naarResourceContent
te casten. Dit object vertegenwoordigt de inhoud die aan de gegevensopslagruimte wordt toegevoegd. -
Maak een
com.adobe.idp.Document
-object door eenjava.io.FileInputStream
-object door te geven dat het XDP-bestand opslaat dat aan de gegevensopslagruimte moet worden toegevoegd. (Zie Creërend een document dat op een voorwerp InputStreamwordt gebaseerd.) -
Voeg de inhoud van het
com.adobe.idp.Document
-object toe aan hetResourceContent
-object door de methodesetDataDocument
van hetResourceContent
-object aan te roepen. Geef het objectcom.adobe.idp.Document
door. -
Stel het MIME-type van het XDP-bestand in dat u aan de opslagplaats wilt toevoegen door de methode
setMimeType
van het objectResourceContent
aan te roepen en door te gevenapplication/vnd.adobe.xdp+xml
. -
Voeg de inhoud van het
ResourceContent
-object toe aan hetResource
-object door de methodesetContent
van hetResource
-object aan te roepen en hetResourceContent
-object door te geven. -
Voeg een beschrijving van de bron toe door de methode
setDescription
van het objectResource
aan te roepen en een tekenreekswaarde door te geven die een beschrijving van de bron vertegenwoordigt. -
Voeg het formulierontwerp toe aan de gegevensopslagruimte door de methode
writeResource
van het objectResourceRepositoryClient
aan te roepen en de volgende waarden door te geven:- Een tekenreekswaarde die het pad naar de bronverzameling opgeeft die de nieuwe bron bevat
- Het gemaakte
Resource
-object
zie ook
Snel starten (EJB-modus): een bron schrijven met de Java API
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 aanroept met behulp van de Inroeping-API, geeft u vereiste parameterwaarden door met behulp van een java.util.HashMap
-object. Voor elke parameter om aan de dienst over te gaan, haalt de methode put
van het voorwerp java.util.HashMap
aan en specificeert het naam-waardepaar 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.
Het volgende onderwerp gaat over het gebruik van de API Inroeping om het volgende kortstondige AEM Forms-proces met de naam MyApplication/EncryptDocument
aan te roepen.
MyApplication/EncryptDocument
met Workbench. (Zie Gebruikend Workbench.)Wanneer dit proces wordt aangeroepen, worden de volgende handelingen uitgevoerd:
- Verkrijgt het onbeveiligde document van de PDF dat tot het proces wordt overgegaan. Deze handeling is gebaseerd op de bewerking
SetValue
. De invoerparameter voor dit proces is eendocument
procesvariabele met de naaminDoc
. - Hiermee versleutelt u het PDF-document met een wachtwoord. Deze handeling is gebaseerd op de bewerking
PasswordEncryptPDF
. 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
Roep het MyApplication/EncryptDocument
kortstondige proces aan met behulp van de Java-oproepings-API:
-
Neem client-JAR-bestanden, zoals adobe-livecycle-client.jar, op in het klassenpad van uw Java-project. (Zie Inclusief de bibliotheekdossiers van AEM Forms Java.)
-
Maak een
ServiceClientFactory
-object dat verbindingseigenschappen bevat. (Zie Plaatsende verbindingseigenschappen.) -
Maak een
ServiceClient
-object door de constructor ervan te gebruiken en hetServiceClientFactory
-object door te geven. Met eenServiceClient
-object kunt u een servicebewerking aanroepen. Het behandelt taken zoals het lokaliseren van, het verzenden van, en het verpletteren van oproepingsverzoeken. -
Maak een
java.util.HashMap
-object met behulp van de constructor. -
Roep de methode
put
van hetjava.util.HashMap
-object aan voor elke invoerparameter die wordt doorgegeven aan het langlevende proces. Omdat voor hetMyApplication/EncryptDocument
kortstondige proces één invoerparameter van het typeDocument
vereist is, hoeft u de methodeput
slechts eenmaal aan te roepen, zoals in het volgende voorbeeld wordt getoond.code language-java //Create a Map object to store the parameter value for inDoc Map params = new HashMap(); InputStream inFile = new FileInputStream("C:\\Adobe\Loan.pdf"); Document inDoc = new Document(inFile); params.put("inDoc", inDoc);
-
Maak een
InvocationRequest
-object door de methodeServiceClientFactory
objectcreateInvocationRequest
aan te roepen en de volgende waarden door te geven:- Een tekenreekswaarde die de naam aangeeft van het proces met een lange levensduur dat moet worden aangeroepen. Geef
MyApplication/EncryptDocument
op om hetMyApplication/EncryptDocument
-proces op te roepen. - Een tekenreekswaarde die staat voor de naam van de procesbewerking. De naam van een kortstondige procesbewerking is doorgaans
invoke
. - Het
java.util.HashMap
-object dat de parameterwaarden bevat die de servicebewerking vereist. - Een Booleaanse waarde die
true
opgeeft en 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. Geef
-
Verzend de aanroepingsaanvraag naar de service door de methode
invoke
van het objectServiceClient
aan te roepen en het objectInvocationRequest
door te geven. De methodeinvoke
retourneert eenInvocationReponse
-object.note note NOTE Een proces van lange duur kan worden aangehaald door de waarde false
als vierde parameter van decreateInvocationRequest
methode over te gaan. Het overgaan van de waardefalse
leidt tot een asynchroon verzoek. -
Haal de geretourneerde waarde van het proces op door de methode
getOutputParameter
van het objectInvocationReponse
aan te roepen en een tekenreekswaarde door te geven die de naam van de uitvoerparameter opgeeft. In dit geval geeft uoutDoc
op (outDoc
is de naam van de uitvoerparameter voor hetMyApplication/EncryptDocument
-proces). Cast de geretourneerde waarde naarDocument
, zoals in het volgende voorbeeld wordt getoond.code language-java InvocationResponse response = myServiceClient.invoke(request); Document encryptDoc = (Document) response.getOutputParameter("outDoc");
-
Maak een
java.io.File
-object en controleer of de bestandsextensie .pdf is. -
Roep de methode
copyToFile
van het objectcom.adobe.idp.Document
aan om de inhoud van het objectcom.adobe.idp.Document
naar het bestand te kopiëren. Gebruik het objectcom.adobe.idp.Document
dat door de methodegetOutputParameter
is geretourneerd.
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