2015-08-14 4 views
1

В моей Java EE Aplication я использую следующий фрагмент кода, чтобы получить BeanManagerс использованием Java EE BeanManager, как Singleton

public static BeanManager getBeanManager() { 
    try { 
     InitialContext initialContext = new InitialContext(); 
     return (BeanManager) initialContext.lookup("java:comp/BeanManager"); 
    } catch (NamingException e) { 
     throw new RuntimeException("Failed to retrieve BeanManager!", e); 
    } 
} 

было бы безопасно использовать BeanManager, как синглтон, так что я бы не для поиска в исходном контекст каждый раз, когда мне нужен BeenManager?

ответ

1

Если вы хотите использовать BeanManager в стандартную EE (v6-v7) компонент, то оно совершенно законно и рекомендовал просто сделать:

@Inject BeanManager beanManager 
+0

Unfortunally Я использую BeanManager в компонентах Java EE, которые не предоставить способ использования CDI. Один из них - ExceptionMapper. На самом деле это причина, почему мне нужен BeanManager, в первую очередь, мне нужно иметь доступ к EJB –

+0

Я использую wildfly 8.1.0.Final, который поставляется с швом 2.1 и resteasy 3.0.8 и может использовать @Inject внутри ExceptionMapper. – Franck

+1

Если вы действительно застряли, я предлагаю использовать Delta spike Bean Manager Provider: https://deltaspike.apache.org/documentation/core.html#BeanManagerProvider – Franck

Смежные вопросы