Ich starte ein neues Java-Projekt, für das eine RESTful-API erforderlich ist. Es wird eine SaaS-Geschäftsanwendung sein, die mobile Kunden bedient.
Ich habe ein Projekt mit Java EE 6 entwickelt, bin aber mit dem Ökosystem nicht sehr vertraut, da ich den größten Teil meiner Erfahrung auf der Microsoft-Plattform habe.
Was wäre eine sinnvolle Wahl für eine JAX-RS-Implementierung für ein neues Projekt wie beschrieben?
Gemessen an der Wikipedia-Liste scheinen die Hauptkonkurrenten Jersey, Apache CXF, RESTeasy und Restlet zu sein. Der auf Wikipedia zitierte Vergleich der JAX-RS-Implementierungen stammt jedoch aus dem Jahr 2008.
Meine ersten Eindrücke von ihren jeweiligen Homepages sind:
- CXF soll eine sehr umfassende Lösung sein (erinnert mich an WCF im Microsoft-Bereich), bei der ich denke, dass das Verstehen, Einrichten und Debuggen komplexer sein kann als das, was ich benötige.
- Jersey ist die Referenzimplementierung und könnte eine gute Wahl sein, aber es ist ein Erbe von Sun und ich bin nicht sicher, wie Oracle damit umgeht (Ankündigungsseite funktioniert nicht und letzte Festschreibungsmitteilung ist von vor 4 Monaten);
- RESTeasy stammt von JBoss und ist wahrscheinlich eine gute Option, obwohl ich mir nicht sicher bin, wie ich es lernen soll.
- Restlet scheint beliebt zu sein, hat aber eine Menge Geschichte. Ich bin mir nicht sicher, wie aktuell es in der Java EE 6-Welt ist oder ob es eine starke J2EE-Denkweise aufweist (wie viele XML-Konfigurationen).
Was wären die Vorzüge jeder dieser Alternativen? Was ist mit Lernkurve? Funktionsunterstützung? Tools (z. B. NetBeans- oder Eclipse-Assistenten)? Wie sieht es mit der einfachen Fehlersuche und Bereitstellung aus? Ist eines dieser Projekte aktueller als die anderen? Wie stabil sind sie?