Java SE: @Inject не работает в валидаторах Bean Validation, вызываемых RESTEasy
Следующий код из Справочного руководства по Hibernate Validator не работает в Java SE, когда RESTEasy вызывает проверку:
public class ValidLicensePlateValidator implements ConstraintValidator<ValidLicensePlate, String> {
@Inject
private VehicleRegistry vehicleRegistry;
//rest of the class
Поле vehicleRegistry
никогда не вводится
Обратите внимание, что у меня есть hibernate-validator-cdi.jar
на пути к классам.
Есть идеи, что может быть не так с моей настройкой? Или это ошибка в RESTEasy?
Вот (возможно, вводящие в заблуждение) результаты моего расследования:
Во время запуска приложения RESTEasy показывает информационный журнал:
RESTEASY008550: Unable to find CDI supporting ValidatorFactory. Using default ValidatorFactory
Из исходного кода RESTEasy кажется, что ValidationFactory с поддержкой CDI ищется в
AbstractValidatorContextResolver
призваниеcontext.lookup("java:comp/ValidatorFactory")
но он терпит неудачу, и вместо него используется ValidationFactory без CDI.