2016-08-30 4 views
2

Я пробую очень простой пример на JBOSS.@Inject не работает для CDI bean

У меня есть следующий класс определен

import javax.annotation.PostConstruct; 
import javax.ejb.Singleton; 
import javax.ejb.Startup; 
import javax.inject.Inject; 

@Singleton 
@Startup 
public class PRCConnectionRunner { 

@Inject 
private PRCConfiguration prcConfiguration; 

@PostConstruct 
void printthing() { 
    System.out.println("HI"); 

    System.out.println(prcConfiguration== null); 
} 

} 


public class PRCConfiguration { 
public String greet(String name) { 
     return "Hello, " + name + "."; 
    } 
} 

У меня есть мой beans.xml определен в каталоге WEB-INF и я упаковка это как война с Maven.

Однако, когда я развертываю и запускаю это на сервере JBOSS, я получаю распечатку HI, но зависимость не вводится, потому что я верю для нулевого теста. Что я делаю неправильно? Я верю, что при вызове метода @PostConstruct я пропускаю некоторые мелкие детали.

+0

Какая версия JBoss? У вас есть файл web.xml? Если да, то какая версия указана в этом? –

+0

Saad

ответ

0

Из CDI 1.1 не каждый класс управляется контекстом CDI. Вы должны указать его аннотация или положить bean-discovery-mode="ALL" в свой beans.xml, а затем использовать @Vetoed на класс, который не должен управляться CDI. Значение по умолчанию: bean-discovery-mode="ANNOTATED". Моя рекомендация аннотирует ваш класс соответствующей аннотацией (зависит от жизненного цикла компонента).

Также проверьте, если ваш файл bean.xml находится в .. \ WebApp \ WEB-INF \ beans.xml

Default CDI Enablement in Java EE 7

+0

попробовал оба, не работал: ( – Saad

0

я решил его. Проблема была в beans.xml хранилась в неправильном месте.

Beans.xml всегда должен быть для веб-приложения.

ЦСИ \ главный \ WebApp \ WEB-INF \ beans.xml

Если вы используете затмение/JBoss, быстрый способ, чтобы просто проверить, если меню развертывается ресурсов является заполнение beans.xml. Когда я разместил его в нужном месте, jboss автоматически обновил пункт меню развернутых ресурсов.

enter image description here

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