Webservices mit Apache Axis2 – Teil 3

SOA

Webservices mit Apache Axis2 – Teil 3

Die Service Klasse
Die Service Klasse ist eine einfache Java-Klasse mit folgendem Listing:

package de.buildblog.webservice;public class WsTest    

{    

 public double createRandom()    

 {    

 	return Math.random();    

 }    

}

Sie dient, wie bereits erwähnt, der Generierung einer Zufallszahl. Ziel ist es diese Generierung jetzt Remote von einer Webapplikation aus auszuführen ohne die Klasse direkt zu integrieren.

Dazu benötigt Axis zunächst ein paar Anhaltspunkte zum zu erzeugenden Webservice. Mindestens anzugeben sind:

  • eine Beschreibung

  • die zu verwendende Klasse

  • die Zugänglichen Methoden dieser Klasse

  • für jede Methode ein MessageReceiver

  • Diese Servicebeschreibung wird in eine Datei Namens „services.xml“ im „META-INF“ Verzeichnis des Java Projektes abgelegt. Ist ein solches nicht Vorhanden muss es vorher angelegt werden.

Die Beschreibung unserer Testservices sieht wie folgt aus:

 <service> 
 <description>WebserviceTest</description> 
 <parameter name="ServiceClass">de.buildblog.webservice.WsTest</parameter> 
 <operation name="createRandom"> 
  <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 
 </operation> 
</service>

Ist die services.xml an ihrer vorgesehen Stelle abgelegt kann aus ihrem zugehörigen Packackage ein Webservice generiert werden. Dazu exportieren wird das Package „info.consus.webservice“ und der META-INF Ordner in ein .jar Archiv mit der Bezeichnung WsTest.jar exportiert und die Dateiendung in .aar (Axis Archiv) geändert. Im Anschluss wird die zuvor angelegte Axis Webapplikation zu starten. Ein Klick auf Admin startet die Webservice Administration in welche man sich mit dem Benutzernamen „admin“ und dem Kennwort „axis2“ einloggen kann.

Unter „Upload Service“ wird das .aar Archiv hochgeladen.

Der Webservice ist jetzt unter der URL http://localhost:8080/Axis/services/WsTest erreichbar. Ein Parameterloser Aufruf dieser Adresse im Webbrowser führt allerdings zu einer Fehlermeldungen. Interessanter ist der Aufruf von http://localhost:8080/Axis/services/WsTest?wsdl

Dieser führt zur Anzeige der zu diesem Webservice generierten WSDL Datei. WSDL steht für WebService Description
Language und spezifiziert die „Beschaffenheit“ des Services:

  • wie lautet die URL des Services?
  • welche Request Methoden sollen verwendet werden?
  • welcher HTTP Port soll verwendet werden?
  • welche Methoden stehen zur Verfügung

Mit Hilfe dieser Datei kann ein Codegenerator einer beliebigen Programmiersprache die Client Klasse erzeugen, welche den Zugriff ermöglicht.



								
				


								
				
				

Diskussion

Keine Kommentare zu “Webservices mit Apache Axis2 – Teil 3”

Post a comment