Les services Web peuvent convertir les applications en applications Web.
En utilisant des services Web, votre application peut publier des informations sur le monde ou fournir une fonctionnalité.
Les services Web peuvent être utilisés par d'autres applications.
Les services Web permettent au serveur WIN 2K du service comptable de votre service comptable de se connecter au serveur UNIX du fournisseur informatique.
La plate-forme de base des services Web est XML + HTTP.
Les services Web utilisent XML pour coder les données et utiliser du savon pour transférer des données.
Qu'est-ce que le service Web
WebService, comme son nom l'indique, est un service Web. Il utilise la méthode Web (HTTP) pour recevoir et répondre à certaines demandes de systèmes externes. Cela permet des appels distants.
1: Du point de vue du mode de travail de WebService, il n'est pas essentiellement différent des programmes Web ordinaires (tels que ASP, JSP, etc.). Ce sont des programmes basés sur le protocole de transmission HTTP.
2: Les données utilisées par WebService sont basées sur le format XML. Actuellement, le service Web standard utilise principalement le protocole SOAP au format de données. Le protocole SOAP est en fait un protocole de texte basé sur des spécifications de codage XML.
Prise en charge technique pour le service Web
La plate-forme de service Web nécessite un ensemble de protocoles pour permettre la création d'applications distribuées. Toute plate-forme a sa méthode de représentation des données et son système de type. Pour atteindre l'interopérabilité, la plate-forme de service Web doit fournir un système de type standard pour communiquer différents types de systèmes dans différentes plates-formes, langages de programmation et modèles de composants. Actuellement, ces accords comprennent:
XML et XSD
Le langage de balisage extensible XML est le format de base pour représenter des données dans la plate-forme de service Web. En plus d'être facile à construire et à analyser, le principal avantage de XML est qu'il n'a rien à voir avec la plate-forme et le vendeur. XML est créé par la World Wide Web Association (W3C). XML SchemaxSD développé par W3C définit un ensemble standard de types de données et donne une langue pour étendre cet ensemble de types de données.
La plate-forme de service Web utilise XSD comme système de type de données. Lorsque vous construisez un service Web dans une langue comme VB. Net ou c #, afin de se conformer aux normes de service Web, tous les types de données que vous utilisez doivent être convertis en type XSD. Si vous voulez qu'il soit transmis entre différentes plates-formes et différents logiciels, vous devez également l'envelopper avec quelque chose. Ce genre de chose est un protocole, comme le savon.
SAVON
Le savon est le protocole d'accès simple d'objet, qui est un protocole léger pour échanger des informations de codage XML. Il a trois aspects principaux: XML-Envelco-Ople définit un cadre pour décrire le contenu d'information et comment traiter le contenu, code pour les objets du programme dans des objets XML et exécute la convention des appels de procédure distante (RPC). Le savon peut fonctionner sur tout autre protocole de transport. Par exemple, vous pouvez utiliser SMTP, le protocole de messagerie Internet, pour livrer des messages SOAP, qui est très tentant. Les en-têtes sont différents entre les couches de transport, mais la charge utile XML reste la même.
Le service Web espère atteindre la capacité de différents systèmes à s'appeler mutuellement d'une manière "dialogue de logiciels-logiciels", brisant l'état incompatible entre les applications logicielles, les sites Web et divers appareils, et atteindre l'objectif de "l'intégration saisonnière basée sur le Web".
Wsdl
Web Service Description Language WSDL est un document de description formel fourni de manière à être lisible par machine et est basé sur XML. Il est utilisé pour décrire le service Web et ses fonctions, paramètres et valeurs de retour. Parce qu'il est basé sur XML, WSDL est à la fois lisible par la machine et lisible par l'homme.
Uddi
Le but de l'UDDI est d'établir des normes de commerce électronique; L'UDDI est un ensemble de normes de mise en œuvre du centre d'information sur le Web, distribuées, d'informations, fournies pour les services Web, et comprend également un ensemble de normes de mise en œuvre qui permettent aux entreprises d'enregistrer leurs propres services Web afin que d'autres entreprises puissent découvrir les protocoles d'accès. Appel RPC et messagerie
Le service Web lui-même implémente réellement la communication entre les applications. Nous avons maintenant deux façons de communication pour les applications: RPC Remote Procedure Call et la livraison de messages. Lorsque vous utilisez RPC, le concept d'un client est d'appeler une procédure distante sur le serveur. Le moyen habituel consiste à instancier un objet distant et à appeler ses méthodes et ses propriétés. Le système RPC essaie d'obtenir une sorte de transparence de localisation: le serveur expose les interfaces des objets distants, et le client est comme les interfaces de ces objets utilisés localement, cachant ainsi les informations sous-jacentes, et le client n'a pas besoin de savoir quelle machine l'objet se trouve.
Comment publier un service Web?
1. Utilisez JDK1.6.0_21 plus tard pour publier un service WebService. Et consultez son document WSDL via la barre d'adresse.
2. Générez le code client via WSIMPORT, appelez et affichez les résultats de l'exécution. (Apprenez à appeler est notre objectif).
Il convient de noter que lorsque JDK1.6._07 est publié après la version JDK, le code doit être entièrement annoté. Si vous utilisez JDK1.6.0_21, car il contient déjà WS2.1, vous ne pouvez ajouter que des annotations @WebService à la classe.
Voici deux codes différents:
WS publié sur JDK1.6.0_13 Version:
package com.itcast; Importer javax.jws.webMethod; Importer javax.jws.webservice; Importer javax.jws.soap.oapbinding; Importer javax.jws.soap.soapbinding.style; Importer javax.xml.ws.endpoint; @WebService (TargetNamespace = "http: // loalhost: 9999 / helloworld") @soapbinding (style = style.rpc) // uniquement RPC Message Style Classe publique Helloworld {// Le suivant est annoté par @webMethod, la méthode @webMethod String Sayshello () {return "Helloworld"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999 / helloworld", new Helloworld ()); }} 2: Ce qui suit est le code de service Web publié sur JDK1.6.0_24:
package com.itcast; Importer javax.jws.webservice; Importer javax.xml.ws.endpoint; @ WebService // Notez qu'il n'y a que cette annotation, cette annotation est également nécessaire. Le style de message SOAP par défaut est: document public class helloworld {public String Sayshello () {return "helloworld"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 9999 / helloworld", new Helloworld ()); }} Le premier service de service Web
package com.itcast; Importer javax.jws.webservice; Importer javax.xml.ws.endpoint; / ** * La première application de service WebService * / // par annotation, il indique que cette classe est publiée en tant que webservice @webservice public class helloworld {public String Sayshello () {return "Hello world"; } // Dans la méthode principale, utilisez le point de terminaison javax.xml.ws.endpoint pour publier une application public static void main (String [] args) {endpoint.publish ("http://127.0.0.1:9999/Helloworld", new Helloworld ()); }}Description du code: Toutes les méthodes exposées non statiques de la classe Helloworld seront exposées à l'extérieur.
Description de l'outil WSIMPORT:
WSIMPORT est un outil fourni avec JDK et peut générer du code d'appel côté client basé sur le document WSDL. Bien sûr, quelle que soit la langue écrite sur le service Web côté serveur, le code Java sera généré sur le client. Peu importe ce qui est écrit sur le côté du serveur.
WSIMPORT.exe est situé dans le répertoire Java_Home / Bin.
Les paramètres courants sont:
• -D <Ar répertoire> - Un fichier .class sera généré. Paramètres par défaut.
• -S <Ar répertoire> - Le fichier .java sera généré.
• -p <Nouveau nom de package généré> -posez la classe générée sous le package spécifié.
(wsdlurl) - http: // serveur: port / service? wsdl, paramètres requis
utiliser:
1: Vous pouvez vérifier votre numéro de version actuel via la version Java. Si la version est trop faible, vous pouvez installer une version supérieure de JDK.
Ou copiez directement le répertoire JDK installé sur votre machine telle que D: /jdk1.6.0_24.
Étant donné que les variables d'environnement précédentes ont été définies sur l'ancienne version précédente du répertoire JDK, à savoir les deux variables d'environnement Java_Home et Path.
Vous pouvez réinitialiser la variable d'environnement à: java_home = d: /jdk1.6.0_24, path =% java_home% / bin,
Après avoir réinitialisé les variables d'environnement, vous devez rouvrir une fenêtre DOC (ligne de commande) pour prendre effet.
Si vous ne souhaitez pas modifier les variables d'environnement déjà configurées, vous pouvez saisir la commande suivante dans la fenêtre de ligne de commande pour que JDK1.6.0_24 prenne effet:
set path = d: /jdk1.6.0_24/bin;% path% (il suffit d'entrer)
Vérifiez ensuite si le numéro de version de JDK a changé via la version Java.
2: Accédez à un répertoire relativement propre, j'ai créé un nouveau nom de répertoire sur le disque D appelé: WS, et aller dans ce répertoire.
3: Allumez votre service Web.
4: Entrez la commande suivante:
WSIMPORT s. http://127.0.0.1:9999/Helloworld?wsdl
Description du paramètre: -S fait référence à la compilation du fichier de code source, et le (point) suivant se réfère à le mettre à l'endroit précédent.
Le dernier HTTP… fait référence à l'adresse de l'obtention du manuel d'instructions WSDL.
5: À l'heure actuelle, le fichier .java et le fichier .class seront générés. (tous deux contenant le nom du package d'origine). Copiez le code dans votre projet. (Copiez uniquement le fichier Java)
6: Dans un nouveau projet, une nouvelle classe (peut être située dans n'importe quel package), appelez le code généré ci-dessus, voir PPT à la page suivante.
7: WSIMPORT AUTRES PARAMETERS, Les paramètres que nous utilisons souvent sont -d, -s, -p
-D <Ar répertoire> générera des fichiers .class.
Exemple: WSIMPORT d. http://127.0.0.1:9999/Helloworld?wsdl
-S <Ar répertoire> générera un fichier .java.
Exemple: WSIMPORT s. http://127.0.0.1:9999/Helloworld?wsdl
-p <nom du package> Modifiez le fichier généré (.java ou .class au nom du package spécifié)
Exemple: WSIMPORT -S. -p com.beijing.itcast http://127.0.0.1:9999/Helloworld?wsdl
Pour le paramètre -p, faites attention à la modification du nom du package. Il place toutes les classes générées sous le package spécifié par -p. (Démo)
Il convient de noter que lorsque seul le paramètre -p est utilisé, il utilisera également -D en même temps pour compiler dans un fichier .class. Si le paramètre D est écrit ou non, il est là et il ne partira jamais.
Le code source de Runmain.java est le suivant:
package com.leaf; import com.itcast.heloworld; import com.itcast.heloworldService; / ** * Appelez le code distant en appelant la classe générée * / classe publique Runmain {public static void main (String [] args) {// renvoie l'interface d'appel de la méthode Gethelloworldport de HelloworldSerice Helloworld = new HelloworldService (). GetheLelloworldport (); String str = helloworld.sayhello (); // Exécuter le System d'appel.err.println (str); // retourne la chaîne Helloworld}}La différence entre le service Web et les programmes Web ordinaires
1. WebService utilise uniquement la publication HTTP pour transmettre des données et n'utilise pas GET;
1) Le contenu de la publication TTTP est
(1) Application / x-www-for-forlencod
2) Le contenu de WebService est
(2) Texte / XML SOAP1.1
(3) Application / SOAP + XML SOAP1.2
2. Webservice est limité à partir du format de transmission de données.
Les données utilisées par WebService sont basées sur le format XML. Actuellement, le service Web standard utilise principalement le protocole SOAP au format de données. Le protocole SOAP est en fait un protocole de texte basé sur des spécifications de codage XML.
La différence entre le serveur Web et le serveur Web:
Nous pouvons considérer WebService comme une application sur un serveur Web; D'un autre côté, le serveur Web est un conteneur nécessaire pour l'exécution de WebService. C'est leur différence et leur connexion.
Fonctionnalités du service Web:
1. WebService accepte les demandes des clients via HTTP Post
2. Le protocole SOAP est généralement utilisé entre le service Web et le client pour transmettre des données XML.
3. Il est conçu pour la plate-forme multiples ou le langage.