Estou iniciando um novo projeto Java que exigirá uma API RESTful. Será um aplicativo de negócios SaaS que atende a clientes móveis.
Eu desenvolvi um projeto com o Java EE 6, mas não estou muito familiarizado com o ecossistema, pois a maior parte da minha experiência está na plataforma da Microsoft.
Qual seria uma escolha sensata para uma implementação JAX-RS para um novo projeto como o descrito?
A julgar pela lista da Wikipedia , os principais candidatos parecem ser Jersey, Apache CXF, RESTeasy e Restlet. Mas a comparação das implementações JAX-RS citadas na Wikipedia é de 2008.
Minhas primeiras impressões de suas respectivas páginas iniciais são as seguintes:
- O CXF pretende ser uma solução muito abrangente (me lembra o WCF no espaço da Microsoft), o que me faz pensar que pode ser mais complexo entender, configurar e depurar do que o que eu preciso;
- Jersey é a implementação de referência e pode ser uma boa escolha, mas é um legado da Sun e não tenho certeza de como a Oracle está tratando (a página de anúncios não funciona e o último aviso de confirmação é de 4 meses atrás);
- RESTeasy é do JBoss e provavelmente uma opção sólida, embora não tenha certeza sobre a curva de aprendizado;
- O Restlet parece ser popular, mas tem muito histórico, não tenho certeza de como está atualizado no mundo Java EE 6 ou se ele carrega uma mentalidade J2EE pesada (como muitas configurações XML).
Quais seriam os méritos de cada uma dessas alternativas? E a curva de aprendizado? Suporte de recursos? Ferramentas (por exemplo, assistentes do NetBeans ou Eclipse)? E quanto à facilidade de depuração e também implantação? Algum desses projetos está mais atualizado que os outros? Quão estáveis são eles?