Skip to content

0.4 - Ajout d'un Web Service en EJB Stateless #4

@seiza

Description

@seiza

Contenu

Ajout du WebService AdditionWebService sous la forme d'un EJB Session Stateless (voir "Remarques").

Une fois déployé, ce Web Service retourne une String qui est la concaténation des deux paramètres String passés en paramètre.

Remarques

Il y a deux moyens d’implémenter un service web :

  • Le premier repose sur les servlets où une simple classe annotée est déployée dans un conteneur web (dans un WAR).
  • L’autre moyen repose sur les EJB sans état qui sont annotés à la fois par @stateless et @WebSevice, puis déployés dans un conteneur EJB (dans un .jar ou .ear).

Dans ce tutoriel c'est évidemment la seconde option qui a été choisie (via EJB Stateless).

La création du WebService consiste en seulement 3 étapes :

  • Créer l'interface AdditionWebService (avec les annotations @Remote et surtout @WebService)
  • Créer le Stateless Bean AdditionWebServiceBean qui l'implémente (avec les annotations @Stateless et surtout @WebService)
  • Ajouter la configuration Maven (la dépendance xfire:xfire-jsr181-api)
  • Et déployer !

Pour information, dans le cas d'un Web Service via servlet / war, l'interface est inutile : il y a uniquement la classe annotée.

Le subtilité, pour ne pas dire difficulté, réside dans l'obtention du nom du Web Service (afin de pouvoir l'appeler). En fait, quand vous déployer l'EJB (l'EAR) dans JBoss, vous voyez apparaitre la trace suivante :

id=AdditionWebServiceBean
address=http://localhost:8080/jeetuto-ejb-0.4-SNAPSHOT/AdditionWebService/AdditionWebServiceBean
implementor=me.couvreur.java.jeetuto.ejb.ws.AdditionWebServiceBean
invoker=org.jboss.wsf.stack.cxf.InvokerEJB3
serviceName={http://ws.ejb.jeetuto.java.couvreur.me/}AdditionWebService
portName={http://ws.ejb.jeetuto.java.couvreur.me/}AdditionWebServiceBeanPort
wsdlLocation=null
mtomEnabled=false

Cette trace vous donne à la fois :

  • Le nom du Web Service : AdditionWebServiceBean
  • Mais aussi et surtout l'URL par laquelle y accéder : http://localhost:8080/jeetuto-ejb-0.4-SNAPSHOT/AdditionWebService/AdditionWebServiceBean

Une fois le Web Service déployé, voici quelques pistes pour le tester :

Quant à la prochaine étape de ce tutoriel, il s'agira probablement de se pencher sur les Web Services RESTful en Java

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions