Sto avviando un nuovo progetto Java che richiederà un'API RESTful. Sarà un'applicazione aziendale SaaS che serve 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 si trova sulla piattaforma Microsoft.
Quale sarebbe una scelta sensata per un'implementazione JAX-RS per un nuovo progetto come descritto?
A giudicare da elenco di Wikipedia , i principali contendenti sembrano essere Jersey, Apache CXF, RESTeasy e Restlet. Ma il Confronto delle implementazioni JAX-RS citato su Wikipedia è del 2008.
Le mie prime impressioni dalle rispettive home page sono:
- CXF si propone di essere una soluzione molto completa (mi ricorda WCF nello spazio Microsoft), il che mi fa pensare che sia più complesso capire, configurare e eseguire il debug di quanto mi serve;
- Jersey è l'implementazione di riferimento e potrebbe essere una buona scelta, ma è legacy di Sun e non sono sicuro di come lo tratti Oracle (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 un sacco di storia, non sono sicuro di quanto sia aggiornato nel mondo Java EE 6 o se ha una pesante mentalità J2EE (come un sacco di Configurazione XML).
Quali sarebbero i pregi di ciascuna di queste alternative? Che dire della curva di apprendimento? Supporto di funzionalità? Tooling (ad esempio, procedure guidate di NetBeans o Eclipse)? Che ne dici di facilità di debug e di implementazione? Qualcuno di questi progetti è più aggiornato degli altri? Quanto sono stabili?