Invocazione di un'applicazione Java in un server JVM
Esistono diversi modi per chiamare un'applicazione Java™ in esecuzione in un server JVM. Il metodo utilizzato dipende dalle caratteristiche del server JVM.
- Utilizzando gli endpoint del server tipicamente da un browser o da un'applicazione client: HTTP, MDB, IIOP e così via. Questo metodo si applica solo ai server Liberty JVM.
- Utilizzando le API CICS® come EXEC CICS LINK o EXEC CICS START - questo metodo si applica a tutti i tipi di server JVM.
Le applicazioni Java aziendali sviluppate come file di archivio web (WAR), come file di archivio di applicazioni aziendali (EAR) o come file di archivio di bundle aziendali (EBA) contenente file di bundle di applicazioni web (WAB) sono molto probabilmente invocate tramite una richiesta HTTP con un URL specifico. Per invocare le applicazioni da un browser o da un client REST non è necessario alcun collegamento speciale con CICS. In modalità Liberty INTEGRATED, ogni richiesta viene allegata come task CICS e, per impostazione predefinita, viene eseguita con le transazioni CJSA (Web) o CJSU (Non classificato). È possibile personalizzare l'id della transazione definendo e installando gli URIMAP adatti.
Quando si utilizzano le API CICS per eseguire applicazioni Java, esistono diversi modi per indirizzare le classi Java all'esecuzione. Gli approcci disponibili dipendono dal tipo di server JVM e sono indicati nella tabella.
| Tipo di server JVM | @CICSProgram mirando a qualsiasi metodo |
CICS-MainClass mirando a un metodo main |
Interfaccia fornitore DFHSJJI |
|---|---|---|---|
| server JVM Liberty | Sì (solo file WAR e EAR). POJO e tipi di Spring) | No | No |
| Server JVM OSGi | Sì | Sì | No |
| Server JVM Classpath | No | No | Sì |
- Server Liberty JVM (
@CICSProgram) Sebbene le chiamate a EXEC CICS LINK o EXEC CICS START non possano pilotare direttamente gli endpoint web, è possibile implementare un POJO (Plain Old Java Object) all'interno dell'applicazione Enterprise Java, annotarlo con @CICSProgram e invocare i componenti della logica aziendale attraverso le API CICS.
- Server JVM OSGi ( CICS-MainClass e @CICSProgram )
L'invocazione di un'applicazione Java in un server JVM OSGi può avvenire in due modi. L'approccio CICS-MainClass, descritto di seguito, è adatto sia alle applicazioni COMMAREA che a quelle CHANNEL, mentre il più recente approccio
@CICSProgram, utilizzato anche da un server JVM Liberty, supporta solo il collegamento CHANNEL. Entrambi gli approcci utilizzano un EXEC CICS LINK a un PROGRAMMA, o un EXEC CICS START di una TRANSAZIONE con un collegamento iniziale a un PROGRAMMA.- Server JVM basato su Classpath (interfaccia DFHSJJI)
L'invocazione di una funzione Java in un server JVM basato su classpath viene solitamente eseguita come parte di una funzionalità specifica di un server JVM, come Batch, Axis2 e SAML. Per queste funzionalità, viene fornita l'interfaccia del fornitore DFHSJJI; per ulteriori informazioni, vedere Collegamento a un server JVM.
- Axis2 o server SAML JVM (fornitori di pipeline)
Vedere Configurazione di un server JVM per Axis2 e Configurazione di CICS per SAML.
Utilizzo dell'approccio CICS-MainClass
- Aggiornare il MANIFEST.MF del bundle OSGi per aggiungere l'intestazione
CICS-MainClass. L'intestazione deve fare riferimento al nome del pacchetto/classe completamente qualificato in cui esiste un metodomain(). Questo valore sarà registrato anche come servizio OSGi collegabile a CICS. - Creare manualmente una definizione di PROGRAMMA CICS, assicurarsi che il campo JVMCLASS corrisponda al nome/classe del pacchetto completamente qualificato nell'intestazione
CICS-MainClass(il servizio OSGi collegabile) o a un nome di alias se si è utilizzata la sintassiCICS-MainClassper specificare un alias. - Utilizzate la vista "Servizi OSGi" di INQUIRE OSGISERVICES SPI o delle operazioni di CICS Explorer® per determinare quali classi di
main()sono disponibili per LINK. - Per l'attributo JVM, specificare YES per indicare che il programma è un programma Java.
- Per l'attributo JVMCLASS, specificare il nome simbolico del servizio OSGi. Questo valore è sensibile alle maiuscole e alle minuscole.
- Assicurarsi di inserire il nome corretto del JVMSERVER in cui è stata installata l'applicazione di destinazione.
Per ulteriori informazioni sull'invocazione dei metodi principali nei server JVM OSGi, vedere Preparazione di un'applicazione OSGi per essere chiamata da un programma CICS utilizzando CICS-MainClass.
Utilizzo dell'approccio di annotazione @CICSProgram
- Aggiungere l'annotazione
@CICSProgramal metodo Java di destinazione. - Completare il nome del PROGRAMMA CICS desiderato come parte dell'annotazione.
- Assicuratevi di costruire o compilare l'applicazione con il processore di annotazioni CICS per generare i metadati richiesti da CICS. I metadati consentono a CICS di eseguire un LINK di successo e di creare automaticamente una definizione di PROGRAMMA all'installazione dell'applicazione. Più metodi annotati comportano la generazione di più definizioni di PROGRAMMA. Se è già stata creata manualmente una definizione di PROGRAMMA, la definizione esistente ha la precedenza e CICS non la sovrascrive.
Per ulteriori informazioni, consultate Preparare un'applicazione OSGi per essere chiamata da un programma CICS usando @CICSProgram e Preparare un'applicazione Enterprise Java per essere chiamata da un programma CICS, che descrivono anche come invocare i componenti della logica di business delle applicazioni Enterprise Java.
Risultati
È stata creata la definizione per rendere l'applicazione Java disponibile ad altri componenti. Quando CICS riceve la richiesta nel server JVM di destinazione, invoca la classe Java o l'applicazione Web specificata su un nuovo thread Java CICS. Se il servizio OSGi o l'applicazione Web associati non sono registrati o sono inattivi, viene restituito un errore al programma chiamante.