Développement d'un web service sur JBossWs (Bottom-Up)
2010-10-26 12:44
Write commentCet article présente la création d’un Service Web sur le serveur d'application JBoss en utilisant la méthode bottom-up ainsi qu'une présentation du framework JBossWs qui a été intégré a JBoss AS depuis sa version 4.2.
Une rapide présentation de JBossWs :
JBossWs implémente les spécifications JAX-WS pour la définition des services web. Cette norme définit un ensemble d’annotations qui permettent la transformation d’un POJO (ou EJB3) en service web. Les annotations sont interprétées par le serveur d’application afin de transformer les classes Java en service web, il offre aussi d'autres services tel que le support des EJB3 , Ws-Security, WS-Policy ... et il s'intègre aussi facilement avec Apache CXF et GlassFish Metro
Une rapide présentation de JAX-WS:
JAX-WS (Java API for XML based Web Services) est une nouvelle API, mieux architecturée, qui remplace l'API JAX-RPC, mais n'est pas compatible avec elle.
Elle propose un
modèle de programmation pour produire (côté serveur) ou consommer
(côté client) des services web qui communiquent via des messages
XML de type SOAP.
JAX-WS permet la mise en œuvre de plusieurs spécifications :
- Respect des spécifications d’interopérabilité définies par la Web Service Interoperability Organization.
- Respect des spécifications SOAP.
- Permet le développement de services web orientés RPC (literal) ou orienté documents (literal/encoded/literal wrapped)
Lorsque vous développez un service web (Endpoint ), vous avez la possibilité de partir d'un code Java (bottom-up), ou depuis le contrat (WSDL) qui définit votre service (top-down).
S'il s'agit d'un nouveau service (pas de contrat existant), l'approche bottom-up est le chemin le plus rapide, vous n'avez besoin que d'ajouter quelques annotations à vos classes pour obtenir un service opérationnel.
Toutefois, si vous développez un service avec un contrat déjà défini, il est beaucoup plus simple d'utiliser l'approche top-down, depuis l'outil fourni par votre framework (wsconsume pour JBossWs) qui va générer le code annoté pour vous.
Un exemple simple :







