Java EE 7 e WebSocket (con WildFly e AngularJS) – Parte 1

Per rendere i nostri applicativi web sempre più reattivi, la gestione asincrona degli eventi è fondamentale. WebSocket può essere una soluzione, essendo una tecnologia che possiamo ormai considerare consolidata. Non è una novità nemmeno per il vecchio e caro mondo Java, che ci ha sempre provato con l’”architettura” Comet, e soprattutto con Java EE 7. Meglio tardi che mai La...
Continue reading...

Speciale Devops: la virtualizzazione

Introduzione Con questo primo articolo iniziamo lo speciale “CoseNonJaviste Devops“. Lo speciale si comporrà di una serie di articoli che copriranno i seguenti argomenti: Cos’è la virtualizzazione (questo post); Crea la tua macchina virtuale con VirtualBox; Cos’è il movimento Devops; Vagrant: le basi; Vagrant: configura la tua infrastruttura; Vagrant: concetti avanzati; Vagrant + Chef per il provisioning; Chef: concetti avanzati;...
Continue reading...

JBoss AS 7 e datasource: come criptare la password del database

Nelle architetture applicative a 3 livelli, e quindi quelle web solitamente, l’account dell’utente che vi accede non è mai quello del database, come invece avviene comunemente in quelle a due livelli. Questo significa che in realtà l’account che ha accesso ai dati è impersonale (e fin qui…), non deve essere quello di amministrazione – leggi root in MySQL per esempio...
Continue reading...

JBoss 7 ed EclipseLink 2: una coppia quasi perfetta – Parte II (a.k.a weaving statico con Maven)

Recentemente abbiamo visto le difficoltà incontrate nel far andare d’amore e d’accordo JBoss 7.0.2 ed EclipseLink 2.3. Probabilmente i problemi incontrati dipendevano dal fatto che la versione 7.0.2 non era completamente Java EE complinant, ma lo era solo per il profilo web. Con la nuova versione di JBoss (al momento 7.1.1) le cose sono leggermente migliorate ma, come anticipato, è meglio aggiornare anche EclipseLink alla versione 2.4. Vediamo perché....
Continue reading...

JBoss 7 ed EclipseLink 2: una coppia quasi perfetta – Parte I (a.k.a. weaving statico con Ant)

Gli Application Server (AS) basati sulle specifiche Java EE ci permettono spostare una applicazione da uno all’altro senza problemi, e allo stesso tempo ci mettono in condizione di essere in grado di lavorare indistintamente con uno o l’altro AS… questo almeno in teoria! In pratica invece ci scontriamo con tutte le configurazioni specifiche di ogni AS, nonché con deployment descriptors proprietari che variano da server a server. Di solito quindi, una volta scelto l’AS su cui lavorare, è bene affidarsi a tutte le implementazioni delle specifiche che esso porta con se, per avere meno problemi possibile. Prendiamo per esempio JBoss 7, che come implementazione di JPA ha Hibernate. Finché usiamo questa implementazione della specifica JPA, funziona tutto correttamente: se però abbiamo bisogno di passare per esempio ad EclipseLink, perché magari preferiamo qualche sua caratteristica peculiare, dobbiamo armarci di pazienza e rimboccarci le maniche!...
Continue reading...

JCache fai-da-te con JBoss 7 e Infinispan

In un post precedente abbiamo già visto cos’è Infinispan e come si configura una cache con JBoss AS 7. In vista degli ultimi ritocchi a Java EE 7, Infinispan tende la mano a CDI con il nuovo modulo infinispan-cdi, fornendo al momento una parziale implementazione alla specifica JCache (JSR-107) che, come suggerisce il nome, regolamenterà la gestione della cache nelle...
Continue reading...

JBoss 7.0.2 e SOAP: come abilitare il modulo Web Services

Già in un’altra occasione abbiamo avuto modo di parlare delle novità introdotte dall’architettura modulare di JBoss AS 7 e dal comportamento del ClassLoader: a fronte mi maggior sicurezza e isolamento dei componenti, nel migrare una applicazione dalla versione 6 alla 7.0.2 di JBoss possiamo incorrere in problemi inattesi. E’ il caso, per esempio, di applicazioni che espongono Servizi Web SOAP: a differenza di servizi REST, quelli SOAP hanno bisogno che venga abilitato il modulo opportuno affinché funzionino, probabilmente perché ancora il solo profilo Web del server è compliant Java EE 6. Vediamo come fare....
Continue reading...

JBoss e Web Services REST? Ci pensa RESTEasy!

Per scrivere Servizi Web RESTful in Java esistono già diversi strumenti che permettono di facilitare la realizzazione sia della parte producer che di quella consumer, come Jersey, RESTEasy o Restlet. Tutti implementano la specifica JAX-RS, che estendono con API che facilitano la realizzazione della parte client per esempio, non coperte da specifica. Inoltre, il primo è integrato nativamente da Glassfish 3, mentre il secondo da JBoss 6, anche se possono essere tranquillamente usati in qualsiasi Servlet Container, come Tomcat....
Continue reading...