75 votes

Comment choisir entre Jersey, Apache Wink et JBoss RESTEasy?

Je viens d'entendre à propos de Apache Clin d'oeil, et je me demandais quelles différences il avait comparé à Jersey ou JBoss RESTEasy. Ce qui peut être fait dans une que les deux autres ne peuvent pas?

Nous avons été à l'aide de Jersey pour certains de nos projets internes, principalement pour sa simplicité, mais je ne peux pas vraiment comprendre ce qui rend ces deux autres mieux que je voudrais envisager de passer. Quelqu'un at-il des cas d'utilisation pour le créneau chacun de ces motifs?

114voto

Adam Gent Points 15055

JAX-RS Implémentations

Jersey

  • L'Implémentation De Référence De
  • Généralement le plus en pointe
  • Prend en charge la vraie asynchrone (c'est à dire les web sockets, etc...) connexions par le biais soit de l'Atmosphère ou de la version 2.0.
  • A l'appui pour le Printemps et l'injection standard des conteneurs (ie @Inject).
  • Glassfish faisceaux.
  • Elle est beaucoup plus modulaire que les autres JAX-RS projets.
  • Il a un coup de pied au cul URI Builder
  • N'exigent pas nécessairement un conteneur de servlet.
  • Grizzly soutien
  • Netty de soutien (très tôt).
  • Swagger soutien
  • Sorte de manque OAuth 2.0 . Vous devez utiliser d'autres bibliothèques.
  • Certains MVC soutien par le biais de Viewables
  • Hébergé sur java.net (a moins que le site est terriblement lent à certains moments).

RestEasy

Apache Clin d'oeil (jamais utilisé)

  • Je n'ai aucune idée de pourquoi ce projet existe.
  • Soi-disant son de haute performance ciblée.
  • Elle a un client construit sur le haut de HttpUrlConnection (qui est un moins... il devrait être enfichable comme le Printemps RestTemplate).
  • Fondamentalement, le Clin d'œil a été développé dans la maison à certaines des sociétés de l'entreprise et ensuite, compte tenu de Apache.
  • Nécessite un conteneur de servlet.

Restlet

  • Très puissant, mais très compliqué
  • Fournit à faible niveau de REPOS de soutien
  • Ne pas besoin d'un conteneur de servlet

Apache CXF

  • Certains intéressant WADL de soutien.
  • La réutilisation et le ou les combiner de JAX-RS w/ JAX-WS
  • D'appui à la sécurité
  • L'intégration w/ Printemps quoique genre de méchant
  • Censé Autogeneration de client talons

D'autres RPC-comme les systèmes de

Files D'Attente De Messages

RPC asynchrone

Mon humble avis

Je sais que l'OP a demandé pour le REPOS, mais si c'est pour de la communication interne sérieusement envisager d'utiliser une file d'attente de messages ou certains autres RPC asynchrone (Récupérer) au lieu du traditionnel RESTE si vos besoins correspondent à ces systèmes.

Si elle doit être classique HTTP REPOS (externe) je voudrais choisir entre RestEasy ou Jersey comme une grande partie de l'esprit est mis dans une de ces deux projets.

Voir aussi: le Repos des clients pour Java?

15voto

Lors du choix de la mise en œuvre d'utilisation de l'ai à l'esprit que si vous essayez de déployer un Maillot de service web pour JBOSS 7.1, il ne fonctionnera pas. Cette erreur se produit:

Only one JAX-RS Application Class allowed

C'est parce que RESTE Facile, livré avec JBOSS as le défaut de JAX-RS de mise en œuvre. Donc, JBOSS décide que c'est l'application que vous souhaitez utiliser et ne prendra pas en charge un autre de JAX-RS de mise en œuvre (comme Jersey). Afin de résoudre ce problème, vous devez ajouter les lignes suivantes à votre web.xml fichier:

  <context-param>
   <param-name>resteasy.scan</param-name>
   <param-value>false</param-value>
  </context-param>
  <context-param> 
   <param-name>resteasy.scan.providers</param-name>
   <param-value>false</param-value>
  </context-param>
  <context-param>
   <param-name>resteasy.scan.resources</param-name>
   <param-value>false</param-value>
  </context-param>

Lien: https://community.jboss.org/message/744530

5voto

SWitte Points 51

5voto

Blaise Doughan Points 75613

Une de mes extensions de Jersey préférées est Viewables. Viewables vous permet de lier facilement vos données à une page JSP pour implémenter une véritable architecture MVC (Model-View-Controller):

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X