2017-02-05 2 views
1

J'utilise la configuration JNDI suivante:Essayer de se connecter à EJB sur wildfly 10.1 et obtenir: ID de session n'a pas été définie pour le composant stateful

final String appName = ""; 
    final String moduleName = "session-beans"; 
    final String distinctName = ""; 
    final String beanName = "ItemStatefulRemote"; 
    final String viewClassName = ItemStatefulRemote.class.getName(); 
    final String toLookup = String.format("ejb:%s/%s/%s/%s!%s", appName, moduleName, distinctName, beanName, viewClassName); 
    return (ItemStatefulRemote) context.lookup(toLookup); 

Tout en essayant de se connecter avec un je haricot stateful reçois l'erreur suivante:

Session id hasn't been set for stateful component: 

Quelle peut être la raison?

Répondre

2

Puisqu'il s'agit d'un bean avec état, vous devrez ajouter l'ID de session qui peut être effectué en utilisant l'annotation ?stateful avec le viewClassName.

Ainsi, le code doit être modifié pour:

final String viewClassName = ItemStatefulRemote.class.getName()+"?stateful";