Heim  >  Artikel  >  Java  >  Beispiel-Tutorial für die Entwicklung eines Webservice-Servers

Beispiel-Tutorial für die Entwicklung eines Webservice-Servers

零下一度
零下一度Original
2017-06-27 09:28:571938Durchsuche

Vorher geschrieben:

Es gibt viele Methoden und Frameworks zum Entwickeln von Webservices, wie z. B. cxf usw., diese müssen jedoch die Annotationsfunktion verwenden, wenn Sie Serviceklassen schreiben. Wenn das aktuelle JDK 1.4 ist, kann die Anmerkungsfunktion nicht verwendet werden. Daher kann hier das Achsenwerkzeug verwendet werden.

1. Erforderliches JAR-Paket:

2. Im Allgemeinen wird Webservice in Webprojekten verwendet, also beim Erstellen eines Webprojekts Pakete werden im lib-Verzeichnis abgelegt

3 Fügen Sie in der Datei web.xml

<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 hinzu Implementieren Sie einfach die Klasse, zuerst die Schnittstelle

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

Dann die Implementierungsklasse der Schnittstelle

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

}


5. Erstellen Sie unten server-config.wsdd unter WEB-INF (erstellen Sie diese Datei direkt, kopieren Sie dann den folgenden Code und fügen Sie dann nach Bedarf die Konfiguration Ihres eigenen Dienstes hinzu. Tatsächlich kann diese Datei von Ihnen selbst generiert werden. Sie müssen sie erstellen Nachdem Sie das Projekt gestartet haben, wird server-config.wsdd automatisch generiert. Der Vorgang wird hier weggelassen. Sie müssen nur Ihren eigenen Dienst zu server-config.wsdd hinzufügen es zuerst)

<?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>

Parametererklärung: Name: ein Name für den Dienst, hier ist sayHello, und dann der folgende Wert="Füllen Sie hier den vollständigen Pfad der Implementierung ein Klasse Ihres Dienstes“, fast Diese beiden Parameter müssen geändert werden, die anderen können kopiert werden

6. Führen Sie das Projekt aus, geben Sie im Browser Folgendes ein: localhost:8080/test_axis3_stub/services, drücken Sie die Eingabetaste und Sie können darauf zugreifen.

Localhost:8080/test_axis3_stub (Projektname)/services (der Dienstzugriffspfad ist in web.xml so konfiguriert, dass er /services/* abfängt, sodass Sie hier nur Dienste eingeben müssen, um darauf zuzugreifen)

Was hier erwähnt wird, ist eine einfache Einführung. Wenn es sich um komplexe Parameter wie die Übertragung von Bohnen handelt, müssen Sie diese weiter untersuchen. (Es scheint, dass Sie auch relevante Konfigurationen vornehmen müssen, wenn Sie Dienste in server-config.wsdd konfigurieren)

Das obige ist der detaillierte Inhalt vonBeispiel-Tutorial für die Entwicklung eines Webservice-Servers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Java – GenerikaNächster Artikel:Java – Generika