当RESTEasy调用验证时,Hibernate Validator Reference Guide中的以下代码在Java SE中不起作用:
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源代码中,似乎正在AbstractValidatorContextResolver
调用context.lookup("java:comp/ValidatorFactory")
中查找启用了CDI的ValidationFactory,但它失败并且使用了非CDI启用的ValidationFactory。