[TP11] pb Appel CreditCardServiceBean [RESOLU]

Modérateurs : graffiop, jmdouin, agoncal, mlebihan

davidcha
Messages : 12
Inscription : 05 oct. 2015 19:53

[TP11] pb Appel CreditCardServiceBean [RESOLU]

Message par davidcha » 13 janv. 2016 5:27

Bonjour,

l'appel local à CreditCardServiceBean via la méthode createOrder de OrderServiceBean ne fonctionne pas.
L'appel plante avec une InvocationTargetException sur le code ci-dessous

Code : Tout sélectionner

CreditCardServiceLocal  creditCardServiceLocal = (CreditCardServiceLocal) ServiceLocator.getInstance().getLocalHome(CreditCardServiceLocalHome.JNDI_NAME); 
Appel dans méthode createOrder de OrderServiceBean

Code : Tout sélectionner

getCreditCardService().verifyCreditCard(order.getCreditCard()); 

Méthode getCreditCardService()

Code : Tout sélectionner

 private  CreditCardServiceLocal getCreditCardService() {
        CreditCardServiceLocal creditCardServiceLocal = null;
               // Looks up for the home interface
            creditCardServiceLocal = (CreditCardServiceLocal) ServiceLocator.getInstance().getLocalHome(CreditCardServiceLocalHome.JNDI_NAME);
            // customerServiceRemote = (CustomerService) ServiceLocator.getInstance().getHome(CustomerServiceHome.JNDI_NAME_FOR_REMOTE_CLIENTS);
           return creditCardServiceLocal;
    }
J'ai choisi la méthode getLocalHome car on est en local.
Je n'ai donc pas mis @remote dans la classe interface CreditCardServiceLocal

Code : Tout sélectionner

public interface CreditCardServiceLocal {
 public void verifyCreditCard(final CreditCard creditCard) throws CheckException;
}
Dernière édition par davidcha le 13 janv. 2016 5:55, édité 1 fois.

davidcha
Messages : 12
Inscription : 05 oct. 2015 19:53

Re: [TP11] pb Appel CreditCardServiceBean via OrderServiceBe

Message par davidcha » 13 janv. 2016 5:54

Je ne sais pas si c'est la bonne solution mais j'ai réussi à faire fonctionner l'appel
en remplaçant @Stateless (name="CreditCartServiceSB") par @Stateless (name="CreditCardSB")
dans la classe fournie CreditCardServiceBean.

graffiop
Messages : 700
Inscription : 21 juin 2005 14:05

Re: [TP11] pb Appel CreditCardServiceBean [RESOLU]

Message par graffiop » 13 janv. 2016 12:33

Bonjour,

Vous avez effectivement détecté une anomalie dans le nom JNDI déclaré dans CreditCardServiceBean.

Il est donc préférable, (notamment pour ne pas avoir à modifier les sources fournis), d'utiliser l'injection de dépendance dans OrderServiceBean :

Code : Tout sélectionner

    @EJB
    CreditCardServiceLocal _creditCardServiceLocal;

Répondre