Un service web est un service qui fournit des méthodes de service pour les ordinateurs à l'aide soit de REPOS ou de SAVON que de son protocole. Il y a plusieurs façons d'implémenter un service web. Le moyen le plus simple d'écrire un web service serait d'écrire une classe et de les annoter avec l' @WebService
et @WebMethod
les annotations javax.jws
, puis le lancer à partir d'un main
-méthode avec:
Endpoint.publish("http://localhost:8089/myservice", new MyWebService());
Le résultat est que vous pouvez afficher le fichier WSDL, au siège de l'URL et si vous avez SoapUI ou tout autre client de SAVON vous pouvez également tester et d'utiliser votre service web.
Une servlet sur l'autre main est utilisée pour le transport HTTP demandes et resonses. Il peut être utilisé pour écrire une application web avec Jsp et HTML, ou servir XML et JSON réponses (comme dans un service RESTful) et bien sûr aussi de recevoir et renvoyer des messages SOAP. Vous pouvez la considérer comme une couche au-dessous de services web.
Une façon plus globale et approche pratique consiste à écrire un web service avec un cadre et de le publier sur un serveur d'applications ou de conteneur de servlet comme Tomcat ou JBoss. Dans ce cas, vous devrez utiliser une Servlet pour gérer le transport des requêtes HTTP qui permet de transmettre votre SAVON ou de REPOS des messages.
Pour écrire un web service avec la technologie servlet vous pouvez utiliser, par exemple, JAX-WS (par exemple, pour le SAVON). Dans le but de rédiger services RESTful, vous pouvez soit utiliser JAX-RS (avec l'implémentation de référence étant Jersey), ou alternativement, vous pouvez utiliser le Printemps WebMVC, mais autant que je sache, ce n'est pas le but principal de ce cadre et de Jersey est beaucoup plus facile à utiliser.
Concernant la seconde question:
L' @Controller
d'annotation est un stéréotype d'annotation qui dit printemps quelque chose à propos de ce que votre bean est censé faire. Qu'est-ce exactement ce contrôleur sera de retour dépend de la mise en œuvre effective de vos méthodes, vous pouvez configurer le printemps de retour en texte brut, HTML, JSON, XML ou ce que jamais vous le souhaitez.
Une remarque sur le côté, une classe est annotée avec l' @Controller
n'est pas encore une servlet, il est tout simplement un haricot. La façon dont vous utilisez les servlets dépend principalement sur le Cadre que vous utilisez. Par exemple, lorsque vous utilisez le Printemps, la servlet travail est fait par des Ressorts DispatcherServlet
qui à son tour transmet les requêtes vers le bon haricots. Si vous utilisez Tomcat, vous pouvez directement écrire votre propre servlets par simple dérivation de l' javax.servlet.http.HttpServlet
de la classe et de l'écraser les méthodes nécessaires tels que l' doGet
qui répond aux requêtes HTTP GET à partir de votre navigateur.