2010-05-15 6 views
2

J'essaie d'utiliser JNDI pour obtenir un nouveau bean Stateful Session dans une servlet (en tant que variable locale). Ma méthode doGet() a ce qui suit:Comment utiliser JNDI pour obtenir un nouveau bean Stateful Session dans EJB3?

Bean bean = (Bean) new InitialContext().lookup("beanName"); 

J'ai essayé, y compris java:comp/env mais toutes mes tentatives ont conduit à nommer des exceptions.

je tente de lier le grain dans l'annotation @Stateful, en utilisant différentes hypothèses comme @Stateful(name="beanName") et @Stateful(mappedName="beanName")

+0

OK, je l'ai compris. Si cette question est intéressante pour les autres, je vais y répondre la semaine prochaine. –

+0

S'il vous plaît, postez votre trouvaille! – bguiz

Répondre

2

Ce que je avais besoin était d'utiliser l'annotation @EJB sur le servlet au niveau de la classe, comme suit:

@EJB(name="beanName", beanInterface = Bean.class) 

Ensuite recherche dans la méthode de service peut se produire en utilisant le nom lié par l'annotation @EJB:

Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName"); 

Il n'y a pas besoin de quoi que ce soit dans la classe Bean elle-même, autre que l'annotation @Stateful.

+0

bonjour ... je me demandais comment vous avez résolu le problème, j'ai essayé votre solution mais ça ne marche pas pour moi! –

+0

@ Marci-homme désolé de l'entendre. Je ne me souviens certainement pas de quelque chose que je n'ai pas enregistré, c'était il y a plus de 30 mois. Peut-être que vous pouvez poser une nouvelle question avec vos spécificités. –

+0

Je l'ai résolu .... Je laisse Netbeans le faire pour moi. J'ai cliqué droit dans l'éditeur et sélectionné le code d'insertion, et à partir de là j'ai sélectionné Business Bean puis j'ai sélectionné mon business bean et Netbeans s'est occupé de tout. Il a créé une instance du bean et une méthode qui a retourné un bean initialisé! J'ai une sorte de relation de haine d'amour avec Netbeans: D –

Questions connexes