Comment puis-je migrer de Maillot de 1,0 à Jersey 2.0?
Je suis en train de mettre à niveau vers Jersey 2.0 et je vais avoir beaucoup de difficultés parce que les groupIds et artifactIds de Jersey ont complètement changé et je ne peux pas trouver un plan de migration dans le Maillot docs.
Voici ce que mon pom.xml l'air, et ce compilé amende:
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.17</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-servlet</artifactId>
<version>1.17</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server-linking</artifactId>
<version>1.17.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.17.1</version>
</dependency>
Ce que devraient-ils être modifiés? Cette indépendants StackOverflow question a été un peu utile, mais je vais avoir du mal à trouver des choses comme où la @Ref
annotation déplacés.
Mise à jour
- Il semble que
@Ref
n'existe plus ou au moins il n'est pas mentionné dans la documentation plus. Maintenant, vous utilisez unUriBuilder
. - J'ai trouvé très utile dans la section de la documentation qui répond à mes questions maven.
- La
HTTPBasicAuthFilter
a été renomméHttpBasicAuthFilter
. Avis de la capitalisation. Client client = Client.create();
est devenuClient client = ClientBuilder.newClient();
- Ce:
String json = client .resource(getBaseUrl() + url) .accept(MediaType.APPLICATION_JSON_TYPE) .get(String.class);
est devenu
String json = client .target(getBaseUrl()) .path(url) .request(MediaType.APPLICATION_JSON_TYPE) .get(String.class);
Non, il n'est pas résolu. C'est juste l'information que j'ai. Il y a plus de problèmes.
4 ans plus tard est votre problème a été résolu?
4 ans plus tard est votre problème a été résolu?
OriginalL'auteur Daniel Kaplan | 2013-06-13
Vous devez vous connecter pour publier un commentaire.
Vous n'avez pas.
Jersey 2.0 il manque beaucoup de fonctionnalités de Jersey 1.0. Contrairement à ce que les développeurs vont vous le dire, certaines choses sont simplement impossible à mettre en œuvre (par exemple, Guice, le Printemps de l'intégration). Les choses semblent fonctionner sur la surface, mais une fois que vous creusez plus profond, vous trouverez un grand nombre de fonctionnalités sont toujours en panne.
Beaucoup de 1.x plugins n'existent pas dans le 2.x, principalement en raison de ladite rupture.
À la lumière de cela, je vous propose un holding off sur Jersey 2.x pour l'avenir prévisible. Espérons que les développeurs vont nettoyer cette place dans l'année à venir.
Nous avons utilisé hk2.java.net/spring-bridge pour l'intégration de Printemps 4 et Jersey 2
vous sentez-vous encore de cette façon? Il a été quelques années depuis que vous avez fait cette recommandation, et je me demandais quels sont les problèmes que vous trouvez encore en Jersey 1.x -> 2.x les migrations.
Je crois que la plupart des fonctionnalités manquantes a finalement été ajouté à 2.x mais la migration de code existant est toujours extrêmement douloureux. Aussi, Guice et de Printemps, l'intégration reste fondamentalement cassé (ne peut pas être correctement mis en œuvre compte tenu de la conception actuelle). Mon plus grand boeuf avec 2.x, c'est que l'équipe derrière elle ignore les commentaires des utilisateurs (et les attaques que les utilisateurs qui les appeler sur elle). La principale raison que j'ai utilisé et a contribué plugins pour Maillot 1.x était à cause de la forte développeur/soutien de la communauté. Quand Oracle a acheté le Soleil, ils ont remplacé l'équipe et tout s'est écroulé.
OriginalL'auteur Gili
Il est une douleur dans le cou j'ai à dire.
Nous sommes actuellement genou profondément dans la migration relativement grand de 3 ans et+ client-serveur de projet et un garçon que j'ai envie de mordre à mon cou off.
J'espère que nous sommes à la fin de la lutte...
Bien qu'il existe un guide de migration en effet, il n'est pas complet par tous les moyens.
Au lieu de cela, il est remplacé par WebApplication exception et ses successeurs. Il n'y a pas un mot à ce sujet dans le guide de migration et c'est très très important.
Le guide de migration dit:
Grande. Que faire si vous avez choisi le "Jersey propre solution personnalisée" (que nous n'avons pour quelque raison que ce soit)? Il n'y a pas d'autre alternative que de jersey 2. J'ai essayé de produire le même format JSON à l'aide de Larguer, Jackson et Moxy fournisseurs. Je n'ai pas réussi. Pour référence, ma question restée sans réponse ici: Maillot 2 JSON Larguer déballage de l'élément racine
OriginalL'auteur Svilen
Voir le 1.x à 2.0 guide de migration dans le Maillot docs.
@Ref
et où il est allé. Aucune mention de la migration maven pdm, etc.OriginalL'auteur Justin Emery
Il ressemble
@InjectLink
est le remplacement de@Ref
.À partir de ce lien, j'ai été en mesure de classer dans mes pom.xml:
et puis j'ai pris un existant
@Ref
et a été capable de tomber dans le champ remplacer par@InjectLink
.Il ressemble à de la documentation Javadoc de
@Ref
sont en@InjectLink
même, ce qui serait une autre confirmation que c'est le remplacement:EDIT:
Choses difficiles. J'avais besoin d'une pièce de plus à faire ce travail pour moi. Dans
web.xml
,J'ai maintenant:
et enfin,
CustomResourceConfig.java
ressemble à ceciOriginalL'auteur Patrick
Vous pouvez suivre les étapes ci-après pour la migration de Jersey 1 à Jersey 2 :
Ajouter des dépendances suivantes dans le fichier POM :
Maillot 2.23.2 dépendances
Faire Suite à l'entrée en Web.xml :
Écrire de code suivant dans RestResourceIntializer
Maintenant, si vous voulez déployer le code avec les modifications ci-dessus sur websphere,vous obtiendrez exception suivante :
Raison exception ci-dessus est que,Websphere prend en charge JAX-RS 1 de la mise en œuvre,cependant, nous sommes le déploiement de Jersey 2 code de Jax-rs 2 mise en œuvre.
Étapes pour résoudre exception:
Donc, fondamentalement, ce que nous avons à faire est de forcer WebSphere pour choisir nos Maillot 2 pots au lieu de la valeur par défaut de Jax-rs 1.Nous avons besoin de suivre les étapes suivantes pour que
1) Désactiver dans la construction de JAX-RS par la définition suivante de la JVM des biens à vrai
Cette propriété peut être définie par le biais de la console d'administration WebSphere en allant sur des Serveurs->Serveur -> ->Infrastructure de Serveur -> Java et la Gestion de Processus ->Processus Deifinition ->Propriétés-> Java Virtual Machine ->Propriétés-> Propriétés Personnalisées
2) Créer Isolé Bibliothèque Partagée avoir le Maillot 2 Pots de Printemps et 4 Pots
Isolé de la bibliothèque partagée peut être créé par le biais de la Console d'administration Websphere, va à l'Environnement-> Bibliothèques Partagées ->Nouveau
n le classpath de la boîte,nous avons besoin d'entrer le chemin du dossier sur le serveur,où nous avons placé tous les Maillot 2 et le Printemps 4 Pots
Aussi à la classe de chargement ,sélectionnez l'option "utiliser un isolé chargeur de classe pour cette bibliothèque partagée"
et enfin cliquez sur Appliquer et Ok et nous avons terminé avec la création de l'isolé de la bibliothèque partagée.
Lier cette isolés bibliothèque partagée avec votre application fichier war de la façon suivante dans la Console d'administration de
a) Application -> Toutes les Applications -> Cliquez sur votre nom d'application
b) Aller à des Références -> Bibliothèque Partagée Références -> Référence Bibliothèques Partagées ->choisissez votre application à une guerre(Pas d'oreille) et cliquez sur ok.
c) Sélectionnez la bibliothèque que nous avons créé à l'Étape 2 dans "Disponible" de zone de liste déroulante sur le côté gauche et le mettre sur le côté droit, dans "Sélectionné" zone de liste déroulante et cliquez sur ok.
Avec cela, nous avons associé les isolés bibliothèque partagée avec l'application fichier war.
De référence avec des captures d'écran -> http://javasolutionsguide.blogspot.nl/2017/03/howtomigratefromjersey1tojersey2InWebsphere.html
OriginalL'auteur user2603985