Risorse di sviluppo EJB

In questa sezione vengono descritte le risorse e gli strumenti di sviluppo comunemente utilizzati nello sviluppo EJB.

Moduli EJB

I moduli EJB sono riportati nella vista Esplora progetti della prospettiva J2EE e corrispondono ai progetti EJB.

I moduli EJB vengono utilizzati per assemblare uno o più bean enterprise in una singola unità distribuibile. Un modulo EJB viene sviluppato in un progetto EJB e può essere esportato sia come file JAR EJB autonomo o può essere combinato con altri moduli EJB o moduli Web all'interno di una applicazione enterprise. Un file JAR EJB utilizza il formato di un file Java archive standard. Un modulo EJB contiene quanto segue:

  • Uno o più bean enterprise e i relativi file .class e .java associati.
  • I grafici e altri file a seconda del bean enterprise.
  • Un descrittore di distribuzione. Il tipo di file per il descrittore di distribuzione è Extensible Markup Language (XML). Questo file dichiara il contenuto del modulo EJB, definisce la struttura e le dipendenze esterne dei bean nel modulo e descrive come vengono utilizzati il bean enterprise al runtime.
  • Un file MANIFEST.MF nella directory META-INF. Il file manifest può contenere una voce del percorso classe con i riferimenti ad altri file JAR o moduli EJB in un'applicazione enterprise J2EE. Esso definisce le dipendenze esterne del modulo.

Un modulo EJB è installato e viene eseguito in un contenitore EJB.

Un bean enterprise è un componente Java che può essere combinato con altre risorse per creare applicazioni client/server distribuite.

Nota: Se si decide di creare un file JAR del client EJB per il modulo EJB, le classi dell'interfaccia client per i bean enterprise non saranno incluse nel file JAR EJB ma saranno incluse nel file JAR del client EJB.
Progetti EJB

Nel workbench, è possibile creare e gestire le risorse per le applicazioni enterprise. Un progetto EJB è un modulo logico che consente di organizzare i bean enterprise.

Il workbench supporta progetti EJB 1.1, EJB 2.0 e EJB 2.1. Il livello di specifica J2EE di un progetto EAR contenente deve essere impostato su J2EE 1.3 o superiore per i progetti EJB 2.0 e su J2EE 1.4 per i progetti EJB 2.1. In un progetto EJB 1.1, sarà possibile creare soltanto bean EJB 1.1.

Un progetto EJB è un progettoJava specializzato. Come un progetto Java, un progetto EJB deve avere una o più cartelle di origine contenenti i file di origine e di output per il progetto. Per impostazione predefinita, la cartella di origine è denominata ejbModule, ma è possibile modificare tale nome quando si crea il progetto o le nuove cartelle di origine. Quando si pubblica o si distribuisce il progetto, il contenuto delle cartelle o le cartelle stesse verrà aggregato.

Non è possibile utilizzare il progetto EJB come cartella di origine, altrimenti si verificheranno degli errori. Inoltre, nonostante sia possibile avere più di una cartella di origine nel progetto, soltanto una di esse può contenere la cartella META-INF in cui si trovano il fileMANIFEST.MF e il file del descrittore di distribuzione.

Nota: Se si decide di creare un file JAR del client EJB per il modulo EJB, le classi dell'interfaccia client per i bean enterprise non saranno incluse nel progetto EJB ma saranno incluse in un progetto JAR del client EJB separato. I progetti JAR del client EJB sono visualizzati in Esplora progetti come progetti Java nel nodo Altri progetti.
Progetti client EJB

Gli strumenti EJB supportano la creazione di progetti JAR di un client EJB per i moduli EJB. Un progetto JAR del client EJB contiene tutte le classi dell'interfaccia necessarie a un programma client per utilizzare la vista client dei bean enterprise contenuti nel modulo EJB. Quando si crea un progetto JAR client EJB per un progetto EJB, un nuovo progetto Java viene creato e aggiunto allo spazio di lavoro. Il progetto del client EJB viene aggiunto come file file JAR di utilità del progetto a ogni modulo a cui appartiene il progetto EJB.

Per impostazione predefinita, quando si utilizza la procedura guidata per creare un progetto EJB, viene creato anche un progetto JAR del client EJB. Tuttavia, è possibile deselezionare questa opzione nella procedura guidata.

Suggerimento: È inoltre possibile aggiungere il progetto del client EJB a un'altra applicazione enterprise che non include il progetto EJB come un modulo. Ciò garantisce che il file JAR del client EJB venga esportato e assemblato con il file EAR quando viene esportata l'applicazione.
Bean enterprise

Un bean enterprise è un componente Java che può essere combinato con altre risorse per creare applicazioni client/server distribuite.

Esistono tre tipi di bean enterprise: bean di sessione, bean di entità e bean basati sui messaggi. Di solito, tutti i tipi di bean sono utilizzati all'interno di un'applicazione enterprise.

Bean di entità
I bean di entità memorizzano i dati permanenti. Tali bean con CMP (container-managed persistence) richiedono una connessione al database. I bean di entità con BMP (bean-managed persistence) gestiscono i dati permanenti come definito nel codice dei bean. Tra le varie operazioni, ad esempio, vi è la scrittura su database o file XML.
Bean di sessione
I bean di sessione non richiedono un accesso al database, nonostante lo possano ottenere indirettamente mediante l'accesso ai bean di entità. I bean di sessione possono ottenere un accesso diretto ai database (e ad altre risorse) anche mediante l'uso di riferimenti alle risorse.
Bean basati sui messaggi
I bean basati sui messaggi sono un tipo speciale di bean enterprise che funziona da consumatore di messaggi nel sistema di messaggistica JMS. Come per i consumatori di messaggi JMS standard, i bean basati sui messaggi eseguono la logica di business basata sul contenuto del messaggio. In diversi modi, la creazione e l'allocazione dinamica delle istanze dei bean basati sui messaggi simula il comportamento dei bean enterprise di sessione stateless. Tuttavia, i bean basati sui messaggi sono diversi dai bean enterprise di sessione stateless (e da altri tipi di bean enterprise ):
  • I bean basati sui messaggi elaborano più messaggi JMS in maniera asincrona invece che elaborare una sequenza serializzata di chiamate al metodo.
  • I bean basati sui messaggi non hanno una interfaccia principale o remota e pertanto i client interni o esterno non possono accedervi direttamente.
Descrittori di distribuzione

Un descrittore di distribuzione contiene i dati di configurazione che l'ambiente di runtime utilizza per un'applicazione. Un descrittore di distribuzione può includere le informazioni su:

  • La struttura e il contenuto (bean enterprise, ad esempio) dell'applicazione.
  • I riferimenti alle dipendenze interne ed esterne. Ad esempio, un bean enterprise in un modulo EJB può richiedere un altro bean enterprise non associato allo stesso modulo.
  • I riferimenti agli oggetti delle risorse, come URL o origini dati JDBC.
  • I ruoli di sicurezza che il contenitore utilizza quando si implementa il controllo degli accessi richiesto per l'applicazione.
  • Le informazioni transazionali su come (e se) il contenitore gestisce le transazioni per l'applicazione.

I descrittori di distribuzione sono file XML assemblati con i file dell'applicazione in un file Java archive. Un descrittore di distribuzione EJB è denominato ejb-jar.xml e si trova nella cartella META-INF di un progetto EJB. Un'applicazione J2EE contiene un file del descrittore di distribuzione a livello di applicazione che considera l'applicazione come un'unica entità. Essa inoltre contiene diversi descrittori di distribuzione a livello di componente, uno per ogni modulo nell'applicazione.