Sto iniziando un nuovo progetto Java che richiederà un'API RESTful. Sarà un'applicazione aziendale SaaS al servizio dei client mobili.
Ho sviluppato un progetto con Java EE 6, ma non ho molta familiarità con l'ecosistema, poiché la maggior parte della mia esperienza è sulla piattaforma Microsoft.
Quale sarebbe una scelta sensata per un'implementazione JAX-RS per un nuovo progetto come quello descritto?
A giudicare dall'elenco di Wikipedia , i principali contendenti sembrano essere Jersey, Apache CXF, RESTeasy e Restlet. Ma il confronto tra le implementazioni JAX-RS citate su Wikipedia è del 2008.
Le mie prime impressioni dalle rispettive homepage sono:
- CXF mira ad essere una soluzione molto completa (mi ricorda WCF nello spazio Microsoft), il che mi fa pensare che possa essere più complesso da capire, configurare e eseguire il debug di quello di cui ho bisogno;
- Jersey è l'implementazione di riferimento e potrebbe essere una buona scelta, ma è un'eredità di Sun e non sono sicuro di come Oracle la stia trattando (la pagina degli annunci non funziona e l'ultima notifica di commit è di 4 mesi fa);
- RESTeasy è di JBoss e probabilmente un'opzione solida, anche se non sono sicuro della curva di apprendimento;
- Restlet sembra essere popolare ma ha molta storia, non sono sicuro di quanto sia aggiornato nel mondo Java EE 6 o se abbia una mentalità J2EE pesante (come molta configurazione XML).
Quali sarebbero i meriti di ciascuna di queste alternative? Che dire della curva di apprendimento? Supporto alle funzionalità? Tooling (ad es. Maghi NetBeans o Eclipse)? Che dire della facilità di debug e anche della distribuzione? Qualcuno di questi progetti è più aggiornato degli altri? Quanto sono stabili?