Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > ejb инъекции


Автор: botanik 19.11.2009, 15:03
Народ помогите разобраться с анотациями EJB
Объявил ejb аннотации указанным ниже образом

Код

 private @EJB(name="ejb/AM") AM aM;
    
    private @EJB(name="ejb/RM") RM res;
    
    private @EJB(name="ejb/SLM") SLM sl;
 

Обращаюсь к методам 
Код

am.set();


ejb содержит аннотации
Код

@Stateless
@RemoteBinding(jndiBinding = "ejb/SLM")
public class SecureLMEjb implements SLM{


интерфейс
Код

@Remote
public interface SLM {


При обращении к методам ejb все валится по NullPointer на вызове am.set(); дебагер говорит am = null, если в дебагере залукапить данный ejb то он находится без проблем. Подскажите в чем проблема?

использую jboss 4.2.2 Netbeans 6.7.1

Автор: MisterCleric 19.11.2009, 15:12
зайди в jmx-console
найди MBean JNDIView
у него есть метод list
потом найди свой EJB по имени класса и смотри в какие JNDI-имена он забиндин.

Автор: botanik 19.11.2009, 15:50
Спасибо но не помогло его имя там указано  указал его в инъекции не помогло

Автор: MisterCleric 19.11.2009, 17:01
Please? read this:
http://blog.javarnd.com/?p=122

Вот если бы убрал из 

Цитата

 @EJB(name="ejb/SLM")


атрибут name, то все бы заработало по автоматически созданным локальным интерфейсам. Короче, в документации к EJB3 написано, что инъекция работает только на локально задеплоеных бинах, т.е. тех, которые лежат в локальном JNDI.

Автор: botanik 19.11.2009, 20:33
Не помогло

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)