Поле @Inject всегда равно нулю [дубликат]

На этот вопрос уже есть ответ здесь:

Доступ к внедренной зависимости в конструкторе управляемого компонента вызывает исключение NullPointerException 1 ответ

Я пытаюсь @Inject поле (его jar-модуль, пустой файл beans.xml существует в META-INF), как это:

Интерфейс IDataProvider

public interface IDataProvider {
  void test();
}

Импорт реализации DataProvider javax.enterprise.context.ApplicationScoped;

@ApplicationScoped
public class DataProvider implements IDataProvider {
  private int i;

  public DataProvider() {
    i = 42;
  }

  @Override
  public void test() {

  }
}

И класс, где я пытаюсь внедрить DataProvider

import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;

@ApplicationScoped
public class DataController {

  @Inject
  private IDataProvider dataProvider;

  private int k;

  public DataController() {
     k = 42;
  }
}

Если я запускаю это в Wildfly, введенный dataProvider всегда равен нулю (точка останова в конструкторе DataController).

В каждом уроке это делается так, поэтому я подумал, что это должно сработать. Разница лишь в том, что оба класса должны быть @ApplicationScoped

Я использую Wildfly 8.2Final, Gradle, IntelliJ. Мой gradle.build выглядит так:

apply plugin: 'java'

repositories {
  mavenCentral()
  jcenter()
}

dependencies {
  compile group:'javax', name:'javaee-web-api', version:'7.+'
  compile group:'org.jboss.ejb3', name:'jboss-ejb3-ext-api', version:'2.+'
}

sourceSets {
  main {
      java {
          srcDir 'src/api/java'
          srcDir 'src/main/java'
      }
  }

  test {
      java {
          srcDir 'src/test/java'
      }
  }
}

jar {
  from ('./src') {
      include 'META-INF/beans.xml'
  }
}

У кого-нибудь есть идея, почему это не работает? я не получаю никакой ошибки или исключения от Wildfly.

Ответы на вопрос(1)

Ваш ответ на вопрос