2008-09-17 5 views
50

J'ai travaillé sur l'implémentation de référence JAX-RS (Jersey). Je connais au moins deux autres frameworks (Restlet & Apache CXF).JAX-RS Frameworks

Ma question est: Quelqu'un a-t-il fait une comparaison entre ces cadres et, dans l'affirmative, quel cadre recommanderiez-vous et pourquoi?

+0

voir aussi: http://stackoverflow.com/q/3459795/1725096 –

Répondre

30

FWIW nous utilisons Jersey comme plein de caractéristiques tassée (par exemple WADL, vues implicites, XML/support JSON/Atom) a une communauté de développeurs importante et dynamique derrière elle et a une grande spring integration. Si vous utilisez JBoss/SEAM vous pourriez trouver que RESTeasy s'intègre un peu mieux - mais si vous utilisez Spring pour Dependency Injection, Jersey semble l'implémentation la plus simple, la plus populaire, la plus active et la plus fonctionnelle.

+1

Attention! Jersey 2.0 est nettement inférieur à 1,0 en termes de support communautaire et de fonctionnalités qui avaient l'habitude de fonctionner en 1.0 mais qui ont été supprimées en 2.0. – Gili

+0

Pourriez-vous élaborer sur les fonctionnalités qui vous manquent? –

+0

Nous avons utilisé Jersey, c'est assez impressionnant .... Mes exigences sont modestes et simples, donc je me sens très heureux d'être Jerseyiet !! @Gili pouvez-vous s'il vous plaît mentionner les fonctionnalités qui vous manquent ... !! – varra

6

Mon collègue mentionne pourquoi nous utilisons RESTeasy pour notre projet en cours dans RESTful web services in Java EE with RESTeasy (JAX-RS):

Sa mise en œuvre de référence, Jersey, n'a pas été choisi parce que nous avons eu du mal à l'intégrer bien avec EJB3 et Seam 2.0.

Nous utilisons l'implémentation RESTeasy de JAX-RS, car nous n'avons eu aucune difficulté à l'intégrer à nos EJB et Seam. Il a également une documentation suffisante.

Il existe une autre implémentation d'Apache, mais je ne l'ai pas essayée car elle utilise une ancienne version de JAX-RS. Enfin, il existe encore un autre framework pour les services Web RESTful pour Java appelé Restlet, mais nous ne l'avons pas favorisé car, à l'heure où j'écris, il utilise une architecture personnalisée, même si un bon support JAX-RS est en cours .

+3

Apache CXF (http://cxf.apache.org) a JAX-RS mais il y a aussi un projet Apache Incubator qui est JAX-RS conforme appelé Apache Wink (http://incubator.apache.org/wink/) qui contrairement à CXF est axé sur JAX-RS. –

+1

Merci d'avoir signalé Wink. – Luke

7

Mon équipe et moi-même utilisons intensivement Restlet, mais pas ses fonctionnalités JAX-RS. Je peux vous dire que j'ai été très impressionné par les développeurs et la communauté de Restlet; ils sont très actifs, engagés, réactifs et engagés dans un cadre stable, efficace, fiable et efficace. Je suis désolé de ne pouvoir répondre directement à votre intérêt principal, mais je pensais que vous pourriez trouver mon expérience avec Restlet précieuse.

6

Il semble qu'il y ait 4 implémentations JAX-RS décentes, donc vous êtes probablement d'accord avec l'une d'entre elles. Pour ce que ça vaut, j'ai trouvé Jersey (1.0.2) vraiment sympa jusqu'à présent. Mes besoins sont assez modestes, un service de back-end simple, prendre soin de la plomberie et ainsi de suite. Et ce Jersey fait très bien.

6

Nous avons découvert qu'Apache Wink est très facile à utiliser, prend en charge JAX-RS et possède de nombreuses fonctionnalités au-delà de la norme.

+2

+1 pour wink, ce que j'aime la plupart de ce cadre est la simple intégration avec le cadre de printemps – LiorH

26

Restlet a une liste étendue d'extensions pour Spring, WADL, XML, JSON ainsi que beaucoup d'autres, y compris une extension pour API JAX-RS.

Il est également le seul cadre available in six consistent editions:

  • Java SE
  • Java EE
  • Google Web Toolkit
  • Google AppEngine
  • Android
  • environnements OSGi

Ses principaux avantages sont les suivants:

  • client entièrement symétrique et API serveur lorsque JAX-RS a été conçu pour le traitement côté serveur
  • connecteurs pour d'autres protocoles que HTTP (cartographie à la sémantique HTTP) lorsque JAX-RS est HTTP ne
  • portée beaucoup plus large de fonctionnalités, y compris le contrôle complet de routage URI via l'API Restlet (mais peut intégrer Servlet si nécessaire)
  • provision pour le soutien NIO

L'API JAX-RS peut être un bon choix si vous êtes limité aux API approuvées par JCP (alors n'utilisez pas Spring ou toute extension des projets JAX-RS comme Jersey et RESTeasy!), Sinon Restlet est le framework le plus mature (initialement publié en 2005) et vous donnera, dans sa version 2.0, tous les avantages des annotations combinées avec un framework orienté classes puissant et extensible.

Pour une durée plus longue list of features, please check this page.

Meilleures salutations, Jerome Louvel

Restlet ~ fondateur et développeur principal ~ http://www.restlet.org

+5

Pas que je suis totalement convaincu "quatre ...éditions "est un point positif - mais vous continuez à la liste cinq, ce qui est un peu incohérent :) –

+1

Vous avez raison, en fait, nous avons maintenant 6 éditions, alors je répare le texte :) –

0

J'utiliseraient pas de cadre. Juste celui qui vient avec votre serveur d'applications. Si vous utilisez les spécificités d'un framework, vous perdrez la portabilité et vous serez dans l'enfer si le fournisseur du serveur d'applications inclut une version différente de votre framework favori. Je vais m'en tenir à jax-ws.

Questions connexes