- Learn
- Guida JEE 7, EJB 3 e JPA
- CMP – Client Java
CMP – Client Java
Come al solito, dopo aver effettuato il deploy del componente, effettuiamo un test di unità per vederne il funzionamento. Come detto più volte, per questioni di performance è bene sempre prevedere dei session bean come wrapper di entity bean, ma per questi semplici esempi non ci preoccupiamo di questo aspetto.
Listato 1. Crezione dell’ambiente di esecuzione dell’ejb
Properties props=new Properties();
props.put(Context.INITIAL_CONTEXT_FACTORY,”org.jnp.interfaces.NamingContextFactory”);
props.put(Context.PROVIDER_URL, “jnp://localhost:1099”);
Context ctx=new InitialContext(props);
Come prima cosa, creiamo l’ambiente di esecuzione da cui recuperare le risorse attraverso l’interrogazione della struttura dati JNDI.
Listato 2. Recupero Home remota
UserHome uh=(UserHome) ctx.lookup(“User”);
//Creazione di alcune entry
try {
uh.create(“squake”, “Pasquale”, “Congiusti”, “[email protected]”, “3111234567”);
uh.create(“nonnap”, “Nonna”, “Papera”, “[email protected]”, “KLD – 555 – 123”);
uh.create(“giusgar”, “Giuseppe”, “Garibaldi”, “[email protected]”, “000 – 111”);
} catch (LoginException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
Dopo aver recuperato la home remota (che utilizzeremo in tutto l’esempio), creiamo una serie di voci che in seguito interrogheremo.
Listato 3. Creiamo delle voci che interrogheremo in futuro
try {
//Cerco l’utente
User user=uh.findByPrimaryKey(“squake”);
//e visualizzo le informazioni
System.out.println(“Utente #”+user.getLogin()+” – “+user.getNome()+” “+user.getCognome()+”, “
+user.getEmail()+”, “+user.getTelefono());
//Cambio delle informazioni
user.setEmail(“[email protected]”);
//Mostriamo di nuovo le informazioni
System.out.println(“Utente #”+user.getLogin()+” – “+user.getNome()+” “+user.getCognome()+”, “
+user.getEmail()+”, “+user.getTelefono());
} catch (RemoteException e) {
e.printStackTrace();
} catch (FinderException e) {
System.out.println(“Non esiste nessun utente – squake”);
}
La prima è un’operazione di ricerca sulla chiave primaria. Sulla base della primary key scelta, recuperiamo l’utente ed effettuiamo operazioni di modifica.
Come ultima operazione, effettuiamo la visualizzazione di tutti i dati presenti nella tabella User.
Listato 4. Mostriamo tutti gli utenti del database
System.out.println(“Dump database”);
Collection c;
try {
c = uh.findAll();
Iterator i=c.iterator();
while(i.hasNext()){
User user=(User) i.next();
System.out.println(“Utente #”+user.getLogin()+” – “+user.getNome()+” “+user.getCognome()+”, “
+user.getEmail()+”, “+user.getTelefono());
}
} catch (RemoteException e) {
e.printStackTrace();
} catch (FinderException e) {
System.out.println(“Nessun utente trovato!”);
}
Lato server vediamo che i metodi load e store (sincronizzazione con il database) sono richiamati molto spesso. Le opzioni avanzate degli application server consentono peraltro una gestione più efficiente attraverso il meccanismo di caching dei dati (di cui non discuteremo in questa guida, in quanto operazione dipendente dal server).

Se vuoi aggiornamenti su CMP - Client Java inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Alessandro Palumbo, Design per MongoDB
Quanto conta il design per le applicazioni basate su MongoDB