Bonjour,
J'ai une application qui est déployée 2 fois sur le même serveur. Afin de résoudre le problème d'ambiguïté des EJB, j'ai défini des noms JNDI pour chacune des instances dans Websphere.
EJB JNDI Names -> Target Resource JNDI Name -> JNDI Name for all interfaces : ejblocal:app1/ICartService
L'entête de mon interface:
mon implémentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @Local public interface ICartService {
Voici le "ibm-ejb-jar-bnd.xml" généré par le serveur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 @Stateless public class CartService implements ICartService{
Lorsque je lance l'url, j'obtiens l'exceptiuon suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?> <ejb-jar-bnd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://websphere.ibm.com/xml/ns/javaee" xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" version="1.0"> <session name="CartService" simple-binding-name="ejblocal:app1/ICartService"/> </ejb-jar-bnd>
java.lang.ClassCastException: Cannot cast class lu.etat.ci.spa.ejb.service.EJSLocal0SLCartService_14538494 to interface lu.etat.ci.spa.ejb.service.ICartService
(Je dois garder cette configuration, càd, pas changer les annotations telles qu'elles sont définies, et, je ne peux pas non plus rajouter une propriété dans la JVM pour permettre la recherche sur les noms JNDI complets.)
Partager