Zaczynam nowy projekt Java, który będzie wymagał RESTful API. Będzie to aplikacja biznesowa SaaS obsługująca klientów mobilnych.
Opracowałem jeden projekt z Javą EE 6, ale nie znam się zbytnio na ekosystemie, ponieważ większość mojego doświadczenia dotyczy platformy Microsoft.
Jaki byłby rozsądny wybór dla implementacji JAX-RS dla nowego projektu, takiego jak opisany?
Sądząc z listy Wikipedii , głównymi pretendentami wydają się Jersey, Apache CXF, RESTeasy i Restlet. Jednak porównanie implementacji JAX-RS cytowanych na Wikipedii pochodzi z 2008 roku.
Moje pierwsze wrażenia z ich stron głównych to:
- CXF ma być bardzo kompleksowym rozwiązaniem (przypomina mi WCF w przestrzeni Microsoft), co sprawia, że uważam, że zrozumienie, konfiguracja i debugowanie może być bardziej skomplikowane niż to, czego potrzebuję;
- Jersey jest implementacją referencyjną i może być dobrym wyborem, ale jest dziedzictwem firmy Sun i nie jestem pewien, jak Oracle ją traktuje (strona ogłoszeń nie działa i ostatnie powiadomienie o zatwierdzeniu pochodzi sprzed 4 miesięcy);
- RESTeasy pochodzi od JBossa i prawdopodobnie jest to solidna opcja, chociaż nie jestem pewien co do krzywej uczenia się;
- Restlet wydaje się być popularny, ale ma wiele historii, nie jestem pewien, jak aktualny jest w świecie Java EE 6 lub czy niesie za sobą ciężkie nastawienie J2EE (jak wiele konfiguracji XML).
Jakie byłyby zalety każdej z tych alternatyw? Co z krzywą uczenia się? Wsparcie funkcji? Oprzyrządowanie (np. NetBeans lub wizard Eclipse)? Co z łatwością debugowania, a także wdrażania? Czy któryś z tych projektów jest bardziej aktualny niż inne? Jak stabilne są?