Maison >Java >javaDidacticiel >Créer un service Jersey REST basé sur Maven
Service REST basé sur JavaSE
Nous préférons utiliser le prototype avec archetypeGroupId comme org.glassfish.jersey.archetypes et archetypeArtifactId comme jersey-quickstart-grizzly2 pour créer le service REST Projet, utilisez IDEA pour créer le projet comme suit :
Cliquez sur OK pour créer un projet en utilisant le modèle original.
Une fois le projet créé, le modèle d'origine a créé un service REST par défaut. Nous pouvons démarrer le service REST directement, entrer dans le répertoire racine du projet et exécuter la commande suivante pour créer et démarrer le service. :
mvnpackage
mvnexec :java
démarrera le service REST. Vous pouvez arrêter le service à tout moment en appuyant sur la touche Entrée. Le résultat est le suivant :
<.>19 juin 2017 23:12:23 org. glassfish.grizzly.http.server.NetworkListener start
Message : Écouteur démarré lié à [localhost:8080]
19 juin 2017 23:12:23 org.glassfish.grizzly.http.server.HttpServer start
Informations : [HttpServer ] Démarré.
L'application Jersey a démarré avec WADL disponible sur http://localhost:8080/myapp/application.wadl
Appuyez sur Entrée pour arrêtez ça…
fournit également WADL en accédant à l'application.wadl vous pouvez récupérer l'interface publiée par le service REST actuel :
🎜>/>
sources> ;
Service d'accès
accessible directementhttp://localhost:8080/myapp /myresource peut accéder au service REST Si vous accédez directement au service REST, Compris sera affiché.
La commande pour démarrer le servicemvnexec: java, cette commande appelle en fait celle définie par le exec-maven -plugin plugin Le goal dont la valeur est java est utilisé pour déclencher la fonction main dans mainClass La configuration du plug-in est la suivante :
🎜>
> >🎜>
>
🎜>
🎜>La classe de service REST est MyResource, le chemin de la ressource est défini dans son @Path et GET est défini dans la méthode @GET getIt(), le type de réponse défini dans @Produces est une chaîne normale, l'exemple de code est le suivant : @Path( )cours public MyResource {
@GET @Produces public getIt() { retour "Compris!"; } } La classe de tests unitaires MyResourceTest du service REST, dans la classe de tests unitaires, est requise avant l'exécution le test unitaire Démarrez le service et utilisez la méthode définie dans Jersey Client pour appeler le service REST L'exemple de code est le suivant : classe publique. MyResourceTest { privé privé @Avant public voidsetUp() lances Exception { // créer le client Client c = ClientBuilder.newClient();
// décommentez la ligne suivante si vous souhaitez activer // support pour JSON dans le client (vous devez également décommenter // dépendance sur le module jersey-media-json dans pom.xml et Main.startServer()) // -- // c.configuration().enable(new org.glassfish.jersey.media.json.JsonJaxbFeature());
target = c.target(Main.BASE_URI); }
@Après publicvoidtearDown() lance Exception { server.stop(); }
@Test publicvoidtestGetIt() { String réponseMsg = target.path("myresource") .request().get(String.class); assertEquals("Compris!", réponseMsg); } }
Basé sur le service de conteneur Servlet
Nous préférons utiliser le prototype avec archetypeGroupId comme org.glassfish.jersey.archetypes et archetypeArtifactId comme jersey-quickstart-webapp prototype, créez un projet de service REST, utilisez IDEA pour créer le projet comme suit :
Comme il s'agit d'un projet Web et n'a pas de fonction principale, il doit être déployé dans un conteneur Servlet avant de pouvoir être exécuté, nous devons configurer Tomcat La configuration d'IDEA est la suivante :
Après avoir cliqué sur OK, le conteneur de servlet est configuré et le service peut être exécuté
Une fois le service démarré, nous pouvons accéder à http://localhost:8080 /RESTWebAPP/webapi /myresource pour appeler le service REST affichera Compris !
Le nom du répertoire racine Web est webapp, la version par défaut du conteneur Servlet est 2.5 et le fichier WEB-INF/web.xml est configuré pour configurer le service REST. La configuration web.xml est la suivante. :
version="1.0"encodage="UTF -8"? >
voir les détails d'implémentation -->
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!