L'application de Websice est devenue de plus en plus étendue. Ce qui suit introduit plusieurs façons de développer le service Web dans le système Java, ce qui équivaut à la création d'un enregistrement.
1.Axis2
Axis est le prochain composant de développement de serf-seas d'open source d'Apache. Il est apparu relativement tôt et mûr. Ici, nous introduisons principalement le développement de l'axe + eclipse webService. Bien sûr, vous pouvez développer et publier le service Web sans Eclipse, mais il sera plus pratique d'utiliser Eclipse.
(1) Téléchargez la version Java EE d'Eclipse //www.vevb.com/softs/239903.html#down
(2) Télécharger axis2 http://axis.apache.org/axis2/java/core/download.cgi
(3) Télécharger le plugin Axis2 d'Eclipse
Axe2_codegen_wizard
Axis2_service_archiver
http://axis.apache.org/axis2/java/core/tools/index.html
Recommandé d'utiliser la version 1.3
(4) Eclipse pour installer le plug-in Axis2
1) Créez un nouveau dossier AXIS2 dans n'importe quel répertoire, créez un nouveau répertoire Eclipse sous ce dossier et créez un nouveau répertoire de plugins et des fonctionnalités dans le répertoire Eclipse, telles que: d: / ProgramSoftware / Eclipse-Svn / Axis2 / Eclipse;
2) Décompressez le plugin Axis2 téléchargé et placez le fichier décompressé dans le répertoire des plugins de l'éclipse nouvellement créée;
3) Créez un nouveau répertoire de liens sous le répertoire% ECLIPSE_HOME% et créez un nouveau fichier axis2.link dans le répertoire des liens, avec le contenu: path = D: / ProgramSoftware / eclipse-svn / axis2;
4) Redémarrez l'éclipse et cliquez sur ・ File-new-autre. Si vous voyez des assistants Axis2, cela signifie que le plug-in est installé avec succès.
(5) Installer axis2
Téléchargez la distribution de guerre de l'axe2 et décompressez-la, placez le package AXIS2.war sous% tomcat_home% / webapps, démarrez Tomcat, visitez http: // localhost: port / axe2, et AXIS2 est installé avec succès.
(6) Utilisez Eclipse pour créer un nouveau projet Web et créer une classe Java normale, y compris au moins une méthode.
(7) Publier un service Web
1) Cliquez sur File-new-autre dans Eclipse, Open AXIS2 Wizards, SELECT AXIS2 Service Archiver, puis suivant;
2) Sélectionnez l'emplacement du fichier de classe, c'est-à-dire le chemin de stockage du fichier de classe. Remarque: Sélectionnez uniquement le répertoire des classes, n'incluez pas le dossier du package, puis suivant;
3) Sélectionnez Skip WSDL puis suivant
4) Allez ensuite pour sélectionner le fichier XML Service à inclure dans l'archive du service et vérifiez automatiquement la génération de l'entretien XML;
5) remplissage du nom du service Dans le nom de votre service, remplissage de nom de classe dans le nom de la classe, y compris le nom du package, puis cliquez sur Charger, puis cliquez sur Terminer. À l'heure actuelle, le service Web sera publié avec succès;
6) Ensuite, accédez à% tomcat_home% / webapps / axis2 / web-inf / services pour voir s'il existe un fichier .aar supplémentaire;
7) Visitez http: // localhost: 8085 / axis2 / services / nom de classe? WSDL pour voir le fichier WSDL généré.
Remarque: La méthode ci-dessus consiste à la publier dans le package AXIS2.war. Vous pouvez également copier le fichier .aar généré dans votre application réelle. Dans le même temps, vous pouvez également utiliser la fonction de création du site Web d'Eclipse pour publier votre site Web. Sélectionnez AXIS2 pour générer votre site Web, afin que le site Web soit déployé sur votre demande.
2.Apche CXF
CXF Development Webservice est également relativement pratique et simple, et son intégration avec le printemps peut être considérée comme très bonne. Prenons un exemple de service de développement CXF.
1) Créez un nouveau projet Web dans les packages Eclipse et Importer la dépendance.
2) Écrivez une interface, telle que:
Test de chaîne publique (@WebParam (name = "valeur", cibleNamespace = "http://service.cxf.zcl.com/", mode = webparam.mode.in) Valeur de chaîne);
Remarque: Dans le service Web développé par CXF, les paramètres des méthodes de l'interface doivent être de cette manière, sinon le serveur CXF ne recevra pas la valeur du paramètre lorsque le client l'appelle. Nom: Nom du paramètre, ne l'écrivez pas (recommandé pour l'écrire), TargetNamespace: Espace de noms, doit être rempli.
3) Écrivez une classe d'implémentation et implémentez la méthode d'interface;
4) Intégrez à Spring, écrivez un fichier Bean, tel que: CXF-Beans.xml, avec le contenu suivant:
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: jaxws = "http://cxf.apache.org/jaxws" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd "> <importer ressource =" classpath: meta-ff / cxf / cxf.xml "/> <importer Resource =" classpath "/> cxf / cxf-extension-SoAP.xml" /> Cxf / Cxf-exTension-SoAp. <importer ressource = "classpath: meta-inf / cxf / cxf-servlet.xml" /> <jaxws: endpoint id = "vote" impleftolor = "com.zcl.cxf.service.votempl" adresse = "/ vote" /> </ beans>
Ce fichier est plus facile à comprendre, donc je ne l'expliquerai pas.
5) Configurer CXFServlet
Configurez CXFServlet dans le fichier web.xml et chargez le fichier CXF-Beans.xml, avec le contenu suivant:
<web-app xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns = "http://java.sun.com/xml/ns/javaee" xmlns: web = "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi: schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "id =" webapp_id "version =" 2.5 "> <context-paam> <param-name> contextConfiglocation </ param-name> <ouciner-Class> org.springframework.web.context.contextloadherListener </dinerer-Class> </dinerder> <Servlet> <Serplet-Name> CXF </vrener-name> <Servlet-Class> Org.apache.cxf.transport.servlet.cxfsservlet </servlet-class> <onful-on--boutple> 1 </carpluplet </servlet-class> <onful-on--on-startup> 1 </carplet </servlet-class> <onful-on--on-starp> 1 </ servlet> <servlet-mapping> <servlet-name> cxf </vrlet-name> <url-potern> / services / * </url-potern> </vrlett-mapping> </low -pp>
Déployez le projet dans Middleware, comme Tomcat, et vous pouvez accéder au service de site Web.
3.JDK Développement Webservice
1) Écrivez une classe Java comme suit:
Demo de package; Importer javax.jws.webParam; Importer javax.jws.webservice; Importer javax.xml.ws.endpoint; @WebService public class jdkwebService {public String DoSomething (@WebParam (name = "value", targetNamespace = "http: // démo /", mode = webParam.mode.in) Valeur de chaîne) {return "Il suffit de le faire," + valeur + "!"; } public static void main (string [] args) {endpoint.publish ("http: // localhost: 8080 / jdkwsdemo / demo.jdkwebservice", new jdkwebservice ()); }} 2) Exécutez la classe Java et vous pouvez accéder au service Web sur le navigateur.
Remarque: Cette méthode n'est pas très amicale lors du développement de l'ingénierie du Web. Nous pouvons écrire une classe de servlet et publier un service Web dans la méthode d'initialisation de la classe de servlet, afin que notre serveur de middleware nous aide automatiquement à démarrer.
3) xfire
Il existe de nombreux frameworks pour développer le service Web, et chaque cadre a ses propres fonctionnalités. Récemment, j'ai utilisé XFire pour pratiquer le développement de WebService. Vous trouverez ci-dessous un petit exemple de développement de WebService. J'espère que cela sera utile à ceux qui commencent.
1. Créez un nouveau projet Web Java nommé TestWebService, ajoutez des packages JAR liés à XFire au répertoire Lib, écrivez des classes d'interface et des classes d'implémentation
package com.lamp.service; Interface publique MessageService {public String getName (String Name); } package com.lamp.service; Interface publique MessageService {public String getName (String Name); } Classe d'implémentation
package com.lamp.service.impl; import com.lamp.service.messageService; classe publique MessageServiceIMPl implémente MessageService {public String getName (String Name) {return "hellow" + name + ", bienvenue dans webService world"; }} package com.lamp.service.impl; import com.lamp.service.messageService; classe publique MessageServiceIMPl implémente MessageService {public String getName (String Name) {return "hellow" + name + ", bienvenue dans webService world"; }} Créez un nouveau dossier Meta-Inf dans le répertoire SRC, puis créez un nouveau dossier xfire en dessous et créez un nouveau fichier de configuration Services.xml dans le répertoire XFire
<? xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://xfire.codehaus.org/config/1.0"> <frévice> <name> MessageService </name> <ServiceClass> com.lamp.sservice.sessageService </sableclass> <implémentationclass> com.lamp.service.impl.messageServiceImpl </ implémentationclass> </ service> </ans> <? xml version = "1.0" Encoding = "utf-8"?> <Beans xmlns = "http://xfire.codehaus.org/config/1.0"> <frédise> <ServiceClass> com.lamp.service.messageService </ ServiceClass> <implémentationclass> com.lamp.service.impl.messageServiceImpl </ implémentationclass> </ferge> </bans>
Enfin, configurez le servlet de Xfire dans web.xml
<VerTlet> <Serplet-Name> XFireServlet </vrlet-name> <Servlet-Class> org.codehaus.xfire.transport.http.xfireConfigurableServlet </ Servlet-Class> </ Servlet> <Servlet-Mapping> <Servlet-Mapping> <Serplet-Name> <URL-Pattern> / Servlet / XFireServlet / * </ url-Pattern> </ Servlet-Mapping> <Serplet-Mapping> <Serplet-Name> XFireServlet </ Servlet-Name> <URL-Pattern> / Service-Name> org.codehaus.xfire. <Servlet-Name> XFireServlet </ Servlet-name> <URL-Pattern> / Services / * </url-Pattern> </ Servlet-Mapping>
Une fois le projet déployé, vous pouvez voir l'interface d'accès à distance dans le navigateur via http: // localhost: 8080 / testwebservice / services, et obtenir wsdl en tant que http: // localhost: 8080 / testwebservice / services / messages? Wsdl?
De cette façon, le développement du serveur est terminé, et maintenant le développement du client est démarré
Créez un nouveau projet Java et introduisez également des pots liés à Xfire. J'utilise Ant pour générer des objets proxy sur le client et créer une nouvelle build.xml sous le chemin du projet, et le code est
<? xml version = "1.0" Encoding = "utf-8"?> <project name = "webService" basasedir = "." default = "gen-webservice"> <propriété file = "build.properties"> </ propriété> <path id = "project-Classpath"> <fileset dir = "$ {lib.dir}"> <include name = "** / *. classname = "org.codehaus.xfire.gen.wsgentask" classpathref = "project-Classpath" /> <wsgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" pack <? xml version = "1.0" Encoding = "utf-8"?> <project name = "webService" basasedir = "." default = "gen-webservice"> <propriété file = "build.properties"> </ propriété> <path id = "project-Classpath"> <fileset dir = "$ {lib.dir}"> <include name = "** / *. classname = "org.codehaus.xfire.gen.wsgentask" classpathref = "project-Classpath" /> <wsgen outputDirectory = "$ {src.dir}" wsdl = "$ {wsdl.dir}" pack Le fichier build.properties qu'il a présenté est également dans le chemin du projet
src.dir = $ {basaseir} / src lib.dir = f: /webservice/xfire-1.2.6/lib wsdl.dir = http: // localhost: 8080 / testwebservice / services / messageService? wsdl? Où Lib.jar stocke le chemin de Xfire pour moi, exécutez Ant pour obtenir l'objet proxy
Écrivez une classe de test
package com.lamp.test; import com.lamp.ws.client.messageServiceClient; import com.lamp.ws.client.messageServiceportType; classe publique TestGetName {public static void main (String [] args) {messServiceClient msg = new MessageServiceClient (); MessageServicePortType PortType = msg.getMessagesViceHTTPPort (); String result = PortType.getName ("Zhang San"); System.out.println (résultat); }} package com.lamp.test; import com.lamp.ws.client.messageServiceClient; import com.lamp.ws.client.messageServiceportType; classe publique TestGetName {public static void main (String [] args) {messServiceClient msg = new MessageServiceClient (); MessageServicePortType PortType = msg.getMessagesViceHTTPPort (); String result = PortType.getName ("Zhang San"); System.out.println (résultat); }} Courir sur la console, j'ai vu Hellow Zhang San, bienvenue à WebService World, et un simple développement de services Web a été achevé.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.