AEM Forms aanroepen met de Java API invoking-aem-forms-using-the-javaapi

CAUTION
AEM 6.4 heeft het einde van de uitgebreide ondersteuning bereikt en deze documentatie wordt niet meer bijgewerkt. Raadpleeg voor meer informatie onze technische ondersteuningsperioden. Ondersteunde versies zoeken hier.

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.)
NOTE
(Alleen Turkije) Start de AEM Forms-server met de opdracht 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.

Bestand
Beschrijving
Locatie
adobe-livecycle-client.jar
Moet altijd worden opgenomen in het klassepad van een Java-clienttoepassing.
<installatiemap>/sdk/client-libs/common
adobe-usermanager-client.jar
Moet altijd worden opgenomen in het klassepad van een Java-clienttoepassing.
<installatiemap>/sdk/client-libs/common
adobe-utilities.jar
Moet altijd worden opgenomen in het klassepad van een Java-clienttoepassing.
<installatiemap>/sdk//client-libs/<app server="">
adobe-applicationmanager-client-sdk.jar
Vereist om de dienst van de Manager van de Toepassing aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-assembler-client.jar
Vereist om de dienst van de Assembler aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-backup-restore-client-sdk.jar
Vereist om de service-API voor back-up en herstel aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-barcodedforms-client.jar
Vereist om de service voor formulieren met streepjescodes aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-convertpdf-client.jar
Vereist om de dienst van de PDF van de Bekeerling aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-distiller-client.jar
Vereist om de Distiller-service aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-docconverter-client.jar
Vereist om de dienst DocConverter aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-contentservices-client.jar
Vereist om de service Documentbeheer aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-encryption-client.jar
Vereist om de dienst van de Encryptie aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-forms-client.jar
Vereist om de Forms-service aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-formdataintegration-client.jar
Vereist om de dienst van de Integratie van de Gegevens van de Vorm aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-generatepdf-client.jar
Vereist om de Generate dienst van PDF aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-generate3dpdf-client.jar
Vereist om de Generate 3D dienst van PDF aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-jobmanager-client-sdk.jar
Vereist om de service Taakbeheer aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-output-client.jar
Vereist om de dienst van de Output aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-pdfutility-client.jar
Vereist om de dienst van de Hulpprogramma's van de PDF of XMP aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-reader-extensions-client.jar
Vereist om de Acrobat Reader DC-extensieservice aan te roepen.
<installatiemap>/sdk/client-libs/common

adobe-repository-client.jar

commons-codec-1.3.jar

Vereist om de dienst van de Bewaarplaats aan te halen.

<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

adobe-signatures-client.jar
Vereist om de service Handtekening aan te roepen.
<installatiemap>/sdk/client-libs/common
adobe-taskmanager-client-sdk.jar
Vereist om de dienst van de Manager van de Taak aan te halen.
<installatiemap>/sdk/client-libs/common
adobe-truststore-client.jar
Vereist om de dienst van de Opslag van het Vertrouwen aan te halen.
<installatiemap>/sdk/client-libs/common

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

Bestand
Beschrijving
Locatie
  • 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 wordt aangeroepen via de SOAP-modus, neemt u deze JAR-bestanden op.
<installatiemap>/sdk/client-libs/third-party
jboss-client.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.

wlclient.jar
Als AEM Forms wordt geïmplementeerd op BEA WebLogic Server®, neemt u dit JAR-bestand op.

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

Services
Inroepmodus
J2EE-toepassingsserver
Vereiste JAR-bestanden
Forms-service
EJB
JBoss
  • 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

EJB
JBoss
  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

  • jboss-client.jar
  • commons-httpclient-3.1.jar
  • adobe-forms-client.jar

  • adobe-reader-extensions-client.jar

  • adobe-signatures-client.jar

Forms-service
SOAP
WebLogic
  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

  • wlclient.jar

  • activation.jar

  • axis.jar

  • commons-codec-1.3.jar

  • commons-collections-3.1.jar

  • commons-discovery.jar

  • commons-logging.jar

  • dom3-xml-apis-2.5.0.jar

  • jai_imageio.jar

  • jaxen-1,1-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

SOAP
WebLogic
  • adobe-livecycle-client.jar

  • adobe-usermanager-client.jar

  • wlclient.jar

  • activation.jar

  • axis.jar

  • commons-codec-1.3.jar

  • commons-collections-3.1.jar

  • commons-discovery.jar

  • commons-logging.jar

  • dom3-xml-apis-2.5.0.jar

  • jai_imageio.jar

  • jaxen-1,1-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)
  • 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 (bijvoorbeeld http://localhost:8080.)

    • De poortwaarde 8080 is van toepassing als de J2EE-toepassing JBoss is. Als de J2EE-toepassingsserver IBM® WebSphere® is, gebruikt u poort 9080. En als de J2EE-toepassingsserver WebLogic is, gebruikt u poort 7001. (Deze waarden zijn standaardpoortwaarden. Als u de havenwaarde verandert, gebruik het toepasselijke havenaantal.)
  • 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 u ServiceClientFactoryProperties.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 WebSpherede java.naming.factory.initial waarde is ingesteld op com.ibm.ws.naming.util.WsnInitCtxFactory.
    • Als u deze eigenschap instelt op WebLogicde java.naming.factory.initial waarde is ingesteld op weblogic.jndi.WLInitialContextFactory.
    • En als u deze eigenschap voor de verbinding instelt op JBossde java.naming.factory.initial waarde is ingesteld op org.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 gebruiken ServiceClientFactoryProperties klasse. De volgende waarden kunnen worden gebruikt: ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE, ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE, of ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE.
  • 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:

  1. Een java.util.Properties object met behulp van de constructor.

  2. Als u de DSC_DEFAULT_EJB_ENDPOINT eigenschap connection, activeer de java.util.Properties object setProperty 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 de ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT opsommingswaarde.
  3. Als u de DSC_TRANSPORT_PROTOCOL eigenschap connection, activeer de java.util.Properties object setProperty 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_PROTOCOLopsommingswaarde in plaats van de ServiceClientFactoryProperties.DSC_EJB_PROTOCOL opsommingswaarde.
  4. Als u de DSC_SERVER_TYPE eigenschap connection, activeer de java.util.Properties object setProperty en geeft de volgende waarden door:

    • De ServiceClientFactoryProperties.DSC_SERVER_TYPEopsommingswaarde

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

      1. Als u de DSC_CREDENTIAL_USERNAME eigenschap connection, activeer de java.util.Properties object setProperty en geeft de volgende waarden door:
    • De ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME opsommingswaarde

    • Een tekenreekswaarde die de gebruikersnaam opgeeft die vereist is om AEM Forms aan te roepen

      1. Als u de DSC_CREDENTIAL_PASSWORD eigenschap connection, activeer de java.util.Properties object setProperty en geeft de volgende waarden door:
    • 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");
NOTE
Als u de SOAP-verbindingsmodus selecteert, moet u ervoor zorgen dat er extra JAR-bestanden worden opgenomen in het klassepad van de clienttoepassing.

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");
NOTE
Alle Java-snelstarthandleidingen die zijn gekoppeld aan Programmeren met AEM Forms, tonen zowel de verbindingsinstellingen EJB als SOAP.

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);
NOTE
Voor volledige informatie over het verifiëren van een gebruiker raadpleegt u Gebruikers verifiëren.

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.

NOTE
Dit scenario is het het aanhalen scenario waarop alle Snelle Begint gebaseerd is.

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
NOTE
Raadpleeg uw beheerder om de naam en het poortnummer van de J2EE-toepassingsserver te bepalen.

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/pdfwordt 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.

NOTE
Om een geheugenlek in WebLogic te voorkomen tijdens het gebruik van een 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 truede 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:

  1. Een java.io.File object.
  2. De com.adobe.idp.Document object copyToFile en geeft de java.io.Fileobject.

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.

MIME-type
Beschrijving
application/pdf
PDF-document
application/vnd.adobe.xdp+xml
XML Data Packaging (XDP), dat wordt gebruikt voor geëxporteerde XFA-formulieren (XML Forms Architecture)
text/xml
Bladwijzers, bijlagen of andere XML-documenten
application/vnd.fdf
Forms Data Format (FDF), die wordt gebruikt voor geëxporteerde Acrobat-formulieren
application/vnd.adobe.xfdf
XML Forms Data Format (XFDF), die wordt gebruikt voor geëxporteerde Acrobat-formulieren
application/rdf+xml
Rijke gegevensindeling en XML
application/octet-stream
Algemene gegevensindeling
NULL
Niet-opgegeven MIME-type

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.

NOTE
Als u wilt uitleggen hoe u een service oproept met de Java API, gaat u naar 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:

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

  2. Stel verbindingseigenschappen in die vereist zijn om een service aan te roepen.

  3. Een ServiceClientFactory door het object aan te roepen ServiceClientFactory statisch object createInstance en het doorgeven van de java.util.Properties object dat verbindingseigenschappen bevat.

  4. Een ResourceRepositoryClient object door de constructor ervan te gebruiken en door te geven ServiceClientFactory object. Gebruik de ResourceRepositoryClient object om bewerkingen van de Repository-service aan te roepen.

  5. Een RepositoryInfomodelFactoryBean object door de constructor ervan te gebruiken en door te geven null. Met dit object kunt u een Resource object dat de inhoud vertegenwoordigt die aan de gegevensopslagruimte is toegevoegd.

  6. Een Resource door het object aan te roepen RepositoryInfomodelFactoryBean object newImage 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.

  7. Een ResourceContent door het object aan te roepen RepositoryInfomodelFactoryBean object newImage en de geretourneerde waarde naar ResourceContent. Dit object vertegenwoordigt de inhoud die aan de gegevensopslagruimte wordt toegevoegd.

  8. Een com.adobe.idp.Document object door een java.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.)

  9. Voeg de inhoud van de com.adobe.idp.Document aan ResourceContent door het object aan te roepen ResourceContent object setDataDocument methode. Geef de com.adobe.idp.Document object.

  10. Stel het MIME-type van het XDP-bestand in om aan de opslagplaats toe te voegen door het ResourceContent object setMimeType methode en doorgeven application/vnd.adobe.xdp+xml.

  11. Voeg de inhoud van de ResourceContent aan Resource door het object aan te roepen Resource object 's setContent en het doorgeven van de ResourceContent object.

  12. Voeg een beschrijving van de bron toe door de Resource object 's setDescription methode en het overgaan van een koordwaarde die een beschrijving van het middel vertegenwoordigt.

  13. Voeg het formulierontwerp toe aan de gegevensopslagruimte door de ResourceRepositoryClient object writeResource 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.

NOTE
Voor informatie over het aanroepen van een langdurig proces, zie Het aanhalen van mens-Centric langlevende Processen.

De discussie gaat hier over het gebruik van de oproepings-API om het volgende kortstondige AEM Forms-proces met de naam MyApplication/EncryptDocument.

NOTE
Dit proces is niet gebaseerd op een bestaand AEM Forms-proces. Om samen met het codevoorbeeld te volgen, creeer een proces genoemd MyApplication/EncryptDocument met Workbench. (Zie Workbench gebruiken.)

Wanneer dit proces wordt aangeroepen, worden de volgende handelingen uitgevoerd:

  1. 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 een document procesvariabele met de naam inDoc.
  2. 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 naam outDoc.

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:

  1. Neem client-JAR-bestanden, zoals adobe-livecycle-client.jar, op in het klassenpad van uw Java-project. (Zie Inclusief AEM Forms Java-bibliotheekbestanden.)

  2. Een ServiceClientFactory object dat verbindingseigenschappen bevat. (Zie Verbindingseigenschappen instellen.)

  3. Een ServiceClient object door de constructor ervan te gebruiken en door te geven ServiceClientFactory object. A ServiceClient kunt u een servicebewerking aanroepen. Het behandelt taken zoals het lokaliseren van, het verzenden van, en het verpletteren van oproepingsverzoeken.

  4. Een java.util.HashMap object met behulp van de constructor.

  5. De java.util.HashMap object put methode voor elke inputparameter om tot het langlevende proces over te gaan. Omdat MyApplication/EncryptDocument kortstondig proces vereist één invoerparameter van type Document, hoeft u alleen de put 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);
    
  6. Een InvocationRequest door het object aan te roepen ServiceClientFactory object createInvocationRequest 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, specificeren MyApplication/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).
  7. Verzend het oproepingsverzoek naar de service door het ServiceClient object invoke en het doorgeven van de InvocationRequest object. De invoke methode retourneert een InvocationReponse object.

    note note
    NOTE
    Een proces van lange duur kan worden aangeroepen door de waarde door te geven falseals vierde parameter van de createInvocationRequest methode. De waarde doorgeven falsemaakt een asynchrone aanvraag.
  8. Haal de geretourneerde waarde van het proces op door de InvocationReponse object getOutputParameter methode en het overgaan van een koordwaarde die de naam van de outputparameter specificeert. Geef in dit geval outDoc ( outDoc is de naam van de uitvoerparameter voor de MyApplication/EncryptDocument proces). De geretourneerde waarde omzetten in Document, zoals in het volgende voorbeeld wordt getoond.

    code language-as3
     InvocationResponse response = myServiceClient.invoke(request);
     Document encryptDoc = (Document) response.getOutputParameter("outDoc");
    
  9. Een java.io.File en zorg dat de bestandsextensie .pdf is.

  10. De com.adobe.idp.Document object copyToFile methode om de inhoud van de com.adobe.idp.Document naar het bestand. Zorg ervoor dat u de com.adobe.idp.Document object dat is geretourneerd door de getOutputParameter 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

recommendation-more-help
a6ebf046-2b8b-4543-bd46-42a0d77792da