Axis2 versus XFire – Das Duell
Kommentare

Die Service-Implementierung in der Klasse BookServiceImpl ist relativ einfach und kann in Listing 3 eingesehen werden. Es folgen die Deployment-Descriptoren. Im Verzeichnis Axis2Config ist hierzu die

Die Service-Implementierung in der Klasse BookServiceImpl ist relativ einfach und kann in Listing 3 eingesehen werden. Es folgen die Deployment-Descriptoren. Im Verzeichnis Axis2Config ist hierzu die Datei services.xml anzulegen, diese füllt man wie in Listing 4 abgedruckt.

Listing 3: Die Web-Service-Implementierung
-------------------------------------------------------------------
package de.javamagazin;

public class BookServiceImpl {

     private Book[] books;

     public BookServiceImpl() {
          
          Author mt = new Author("Teufel", "Marc", 1976);
          Author dw = new Author("Wang", "Dapeng", 1974);
          Author tf = new Author("Frotscher", "Thilo", 1973);
          Author dk = new Author("Koenig", "Dierk", 1965);
          Author pk = new Author("King", "Paul", 1968);
          
          Author[] autorenAxis2 = new Author[] { tf,mt,dw };
          Author[] autorenGroovy = new Author[] { dk,pk };
          
          books = new Book[] { new Book("Java Web Services mit Apache Axis2",
                                             "978-3-935042-81-9", autorenAxis2 ),
                           new Book("Groovy in Action", 
                                              "1-932394-84-2", autorenGroovy ) };
     }
     
     public Book[] getBooks() {
          return books;
     }

     public Book findBook(String isbn) {
          
          for (int i = 0; i 
Listing 4: services.xml: Der Deployment-Deskriptor für Axis2
------------------------------------------------------------------
BookService Axis2-Version
          de.javamagazin.BookServiceImpl
     
Ende

Jeder Service liegt in Axis2 in einem -Element. Im -Node­ wird Axis2 über den Parameter ServiceClass die Implementierungsklasse des Web Service mitgeteilt. Es folgt für jede Methode, die veröffentlicht werden soll, ein -Element. Jede kann einen eigenen definieren. MessageReceiver sind vergleichbar mit den Providern aus Axis 1.x und rufen die Web-Service-Implementierung (in diesem Fall also BookServiceImpl) auf. Der hier verwendete RPCMessageReceiver macht POJO-getriebene Web-Services-Entwicklung mit Axis2 möglich. Selbstverständliche könnte man auch eigene MessageReceiver (beispielsweise zum Aufruf von EJBs) implementieren. Ein ähnliches Konzept gibt es natürlich auch bei XFire, dort heißen sie jedoch Invoker. Nach dem Deskriptor für Axis2 geht es nun an den für XFire (Listing 5).

Listing 5: services.xml: das Gegenstück in XFire
-----------------------------------------------------------------------
BookServicehttp://javamagazin.de/BookServiceImplde.javamagazin.BookServiceImpl

Dieser Descriptor ist fast noch leichter zu verstehen als der von Axis2, und Leser, die das Spring Framework kennen, werden Ähnlichkeiten zur Spring-Konfiguration feststellen. XFire nutzt intern Spring.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -