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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
@Local
public interface ICartService {
mon implémentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
@Stateless
public class CartService implements 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
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>
Lorsque je lance l'url, j'obtiens l'exceptiuon suivante :
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.)