Dashboard > Tutorial Space > ... > ApacheCXF Tutorial - WSDL First JAX-WS > ApacheCXF Tutorial - Samenvatting en conclusie
ApacheCXF Tutorial - Samenvatting en conclusie
Added by Erik Hooijmeijer, last edited by Erik Hooijmeijer on 21 Mar 2008  (view change)
Labels: 
(None)


Samenvatting

In deze tutorial hebben we op 3 verschillende manieren met CXF een web service en een bijpassende cliënt gemaakt:

  • Met 100% Java interfaces en Aegis databinding.
  • Met JAX-WS en JAXB annotaties.
  • Vanuit een gegeven WSDL dmv JAX-WS code generatie.

Door web services te maken m.b.v. interfaces en Aegis databinding kan je services definiëren waarin het contract vast ligt in pure Java interfaces. Omdat het contract vast ligt in Interfaces is het ook heel triviaal om het contract aan te passen. De WSDL en XML volgt uit de Java interfaces. Databinding gebeurt door middel van reflectie, wat natuurlijk een zekere extra overhead heeft.

Door web services te maken met JAX-WS en JAXB bouw je services op een standaardiseerde manier waarbij je het contract vast legt in Java klassen en interfaces welke verrijkt zijn met annotaties. De service zelf is een interface, de data objecten zijn klassen. Je kan de data objecten voorzien van eigen methoden. De WSDL en XML volgt uit de annotaties.

Wanneer je een web service maakt op basis van een gegeven WSDL en daar code uit genereert ligt het contract vast in de WSDL. Vanuit web service perspectief gezien is dit de meest pure methode. De gegenereerde code bestaat uit een interface die service representeert en data objecten voor de parameters. Het is niet verstandig om deze data objecten aan te passen aangezien bij het opnieuw genereren van de code de wijzigingen niet bewaard blijven. Dat houd in dat je eigen code ergens ander moet onderbrengen.

Conclusie

Voor Java gedreven prototyping of service implementaties waar interfaces essentieel zijn kan je het beste methode 1 (Aegis) gebruiken. Als je een gegeven WSDL hebt of moet werken met een integratie component dat een specifieke eisen heeft aan de WSDL (ja dat komt voor ?!) kan je het beste methode 3 gebruiken (code genereren uit de WSDL). Voor alle andere situaties raad ik je methode 2 (geannoteerde klassen en interfaces) aan.

Handige links:
Apache CXF home page: http://incubator.apache.org/cxf/
Apache Maven home page: http://maven.apache.org/
Unofficial guide to JAXB: https://jaxb.dev.java.net/guide/

Over de Auteur:
Erik Hooijmeijer is werkzaam als senior developer bij 42 bv. waar hij zich bezig houdt met de ontwikkeling van Java gebaseerde bedrijfskritische toepassingen. Dit varieert van JEE maatwerk en integratie vraagstukken tot het schrijven van hardware integratie lagen met behulp van Java en JNI. Als het op web services aankomt gebruikt hij bij voorkeur CXF (voorheen XFire) vanwege de efficiënte manier van ontwikkelen. Voor meer informatie: http://www.ctrl-alt-dev.nl

Are you enjoying Confluence? Please consider purchasing it today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.2.2 Build:#516 31 May 2006) - Bug/feature request - Contact Administrators