Может ли CDI вводить стандартные библиотеки POJO в EJB?

Я могу добавить свой собственный POJO в управляемый объект, например так:

import javax.ejb.Stateless;
import javax.inject.Inject;
@Stateless
public class SomeEjb {
    @Inject
    private SomePojo somePojo;
}

И у меня есть это POJO:

// No annotations
public class SomePojo {   
}

Это отлично работает. Если я внедряю EJB в бэк-бин JSF, я вижу, что значениеsomePojo ненулевое значение, как и ожидалось.

Однако, если я попытаюсь ввестиjava.util.Date вSomeEjbЯ получаю следующее исключение при развертывании:

Severe: Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [Date] with qualifiers [@Default] at injection point [[field] @Inject private SomeEjb.date]
org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Date] with qualifiers [@Default] at injection point [[field] @Inject private SomeEjb.date]
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:311)

SomeEjb сейчас:

// No annotations
public class SomeEjb {
    @Inject
    private Date date;    
}

У Date есть открытый конструктор без аргументов, и я подумал, что это все, что нужно CDI, чтобы "удовлетворить зависимость". Я уверен, что это поведение "по спецификации", но в моем понимании CDI есть большая дыра.

Может кто-нибудь объяснить, почему это не работает? В чем разница междуSomePojo а такжеjava.util.Date с точки зрения CDI?

Контекст:

Java EE 6GlassFish 3.1.2.2У меня нет варианта использования для этого. Я знаю что могу просто уточнитьnew Date().

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

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