Maison  >  Article  >  Java  >  Exemple de tutoriel pour développer un serveur de service Web

Exemple de tutoriel pour développer un serveur de service Web

零下一度
零下一度original
2017-06-27 09:28:571989parcourir

Écrit devant :

Il existe de nombreuses méthodes et frameworks pour développer des services Web, tels que cxf, etc., mais ceux-ci doivent utiliser la fonction d'annotation lorsque vous écrivez des classes de service. Si le jdk actuel est 1.4, alors la fonction d'annotation ne peut pas être utilisée. L'outil axe peut donc être utilisé ici.

1. Package jar requis :

2. Généralement, le webservice est utilisé dans les projets Web au travail, donc lors de la création d'un projet Web, le jar requis. les packages sont placés dans le répertoire lib

3 Dans le fichier web.xml, ajoutez

<servlet>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
  </servlet>
  <!-- 这里是访问服务的路径 -->
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>

4. Implémentez simplement la classe, d'abord l'interface

package edu.hue.server;public interface SayHello {public String say(String name);
}

Puis la classe d'implémentation de l'interface

package edu.hue.server;public class SayHelloImpl implements SayHello{public String say(String name) {return "Hello my friend " + name;
    }

}


5. Ci-dessous, créez server-config.wsdd sous WEB-INF (créez ce fichier directement, puis copiez le code suivant, puis ajoutez la configuration de votre propre service si nécessaire. En fait, ce fichier peut être généré par vous-même. Vous devez créer un vous-même. déployer.wsdd, après avoir démarré le projet, server-config.wsdd sera automatiquement généré pour plus de commodité, le processus est omis ici. Il vous suffit d'ajouter votre propre service à server-config.wsdd. Apprenez à l'utiliser. en premier)

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <!-- 这里的globalConfiguration暂时不用管是什么意思,可以先注释掉,不影响结果 
<globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="false"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="sendXsiTypes" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration> -->

 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <!-- 
    这里的几个服务也可以先注释掉 这是自带的服务 注释后就只显示自己的服务<service name="AdminService" provider="java:MSG">
  <parameter name="allowedMethods" value="AdminService"/>
  <parameter name="enableRemoteAdmin" value="false"/>
  <parameter name="className" value="org.apache.axis.utils.Admin"/>
  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
 </service>
 <service name="Version" provider="java:RPC">
  <parameter name="allowedMethods" value="getVersion"/>
  <parameter name="className" value="org.apache.axis.Version"/>
 </service> -->
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>
 
 <!-- 配置自己的服务  -->
 <service name="sayHello" provider="java:RPC">
       <parameter name="className" value="edu.hue.server.SayHelloImpl" />
       <parameter name="allowedMethods" value="*" />
 </service>
 
</deployment>

Explication du paramètre : nom : un nom pour le service, voici sayHello, puis la valeur suivante="Remplissez ici le chemin complet de l'implémentation classe de votre service", presque Ces deux paramètres doivent être modifiés, et les autres peuvent être copiés

6. Exécutez le projet, saisissez dans le navigateur : localhost:8080/test_axis3_stub/services, appuyez sur Entrée, et vous pouvez y accéder.

Localhost :8080/test_axis3_stub (nom du projet)/services (le chemin d'accès au service est configuré dans web.xml pour intercepter /services/*, il vous suffit donc de saisir les services ici pour y accéder)

Ce qui est mentionné ici est une simple introduction. S'il s'agit de paramètres complexes, comme le transfert de haricots, vous devez l'étudier plus en détail. (Il semble que vous deviez également effectuer les configurations pertinentes lors de la configuration du service dans server-config.wsdd)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Java – GénériquesArticle suivant:Java – Génériques