2009-08-14 4 views
3

Je suis actuellement en train d'envelopper mon esprit autour de Java EE 5. Ce que je voudrais faire est de créer un exemple d'application quiComment consommer un webservice d'un EJB

  • offre un EJB simple, sans état (par exemple, simple calculette avec un add() méthode)
  • exposer cette méthode d'ajout comme webservice
  • consomment ce webservice d'un autre EJB

Les deux premières étapes sont faciles et je peux déployer et tester ce grain à Glassfi sh v2.1 déjà et le tester avec un client autonome:

@WebService 
@Stateless 
public class CalculatorWS { 

    @WebMethod 
    public int add(@WebParam(name = "i") int i, @WebParam(name = "j") int j) { 
     int k = i + j; 
     return k; 
    } 
} 

Ce que je ne comprends pas, est cependant comment consommer un webservice comme celui-ci d'un second EJB. Bien que cela ne soit pas strictement utile dans cet exemple, je devrai bientôt écrire quelques EJB qui emballeront les services web externes pour éviter que mes clients internes n'aient à gérer ces ressources externes. D'après ce que je comprends, je devrais être en mesure d'avoir le conteneur m'injecter un webservice dans un domaine de mon EJB? Je n'ai pas trouvé d'exemple pour cela. Je serais heureux de recevoir des conseils sur les tutoriels - ou encore un exemple ici :-)

Pour ce que ça vaut, j'utilise Eclipse 3.5.

Répondre

-1

Le client de service Web n'est pas vraiment spécifique à l'EJB. Je pense donc que vous utiliseriez des techniques client JAX-WS, votre environnement EJB étant un environnement géré (JNDI etc, tous joliment disponibles).

Je sais que vous n'utilisez pas WebSphere mais j'espère que les techniques expliquées here sont généralement applicables.

-1

Je voudrais juste injecter cette calculatrice Bean à un autre bean sans état avec @EJB. Assurez-vous simplement que votre bean implémente une interface pour pouvoir l'injecter.

+1

Comment consomme-t-il CalculatorWS en tant que service Web? Ce sera un simple appel d'EJB, n'est-ce pas? – eugenevd

Questions connexes