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

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

零下一度
Freigeben: 2017-06-27 09:28:57
Original
1992 Leute haben es durchsucht

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>
Nach dem Login kopieren

4 hinzu Implementieren Sie einfach die Klasse, zuerst die Schnittstelle

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

Dann die Implementierungsklasse der Schnittstelle

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

}
Nach dem Login kopieren


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>
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage