Bonsoir,

J'utilise JBoss avec EJB3, et lorsque je fais un Context#lookup(String) j'ai l'exception suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
javax.naming.NameNotFoundException: StoreManagerBean not bound
Voici les bouts de code utiles à la compréhension :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
@Remote
@Local
public interface StoreManager {
    List<Store> getStores();
    void addStore(Store s);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//@EJB(name="StoreManagerBean", beanInterface=StoreManager.class)
@Stateless
//@Local ({StoreManager.class})
public class StoreManagerBean implements StoreManager, Serializable {
 
    private static final long serialVersionUID = 1L;
 
    @PersistenceContext(unitName="StoreManagerBean")
    private EntityManager em;
 
    @SuppressWarnings("unchecked")
    public List<Store> getStores() {
        return em.createNamedQuery("findAll").getResultList();
    }
 
    public void addStore(Store s) {
        em.persist(s);
    }
 
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class EjbLocator {
 
    private Context ctx;
 
    private EjbLocator() {
        try {
            //le fichier jndi.properties est bien présent dans le répertoire racine
            ctx = new InitialContext(System.getProperties());
        } catch (NamingException e) {
            e.printStackTrace();
            throw new Error(e);
        }
    }
 
    public static EjbLocator getLocator() {
        return instance;
    }
 
    public StoreManager getStoreManager() {
        return getEjb(StoreManager.class, "StoreManagerBean");
    }
 
    @SuppressWarnings("unchecked")
    private <T> T getEjb(Class<T> ejbClass, String name) {
        try {
            return (T) ctx.lookup(name + "/local"); //c'est là que ça plante
        } catch (NamingException e) {
            e.printStackTrace();
            return null;
        }
    }
 
}
Merci beaucoup d'avance de votre aide...