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

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!

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.

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.