java - 在 OSGi 中验证 Pojo

标签 java maven osgi

我会在我的 OSGi 中使用 HibernateValidator 验证我的 anootated pojos (JSR 303)。 单元测试工作正常,但在 OSGi 上它不起作用。

这是我的 validator 方法:

public static void validate(Object o) throws ValidationException {

    ValidatorFactory factory = Validation.byDefaultProvider().providerResolver(new OSGiServiceDiscoverer()).configure()
            .buildValidatorFactory();
    Validator validator = factory.getValidator();

    Set<ConstraintViolation<Object>> validatorResult = null;

    if (o instanceof MessageContentsList) {
        MessageContentsList messageList = (MessageContentsList) o;
        validatorResult = validator.validate(messageList.get(0));
    } else {
        validatorResult = validator.validate(o);
    }

    if (!validatorResult.isEmpty()) {
        StringBuffer sb = new StringBuffer();
        for (ConstraintViolation<Object> v : validatorResult) {
            sb.append(v.getPropertyPath() + " " + v.getMessage() + ", ");
        }

        String msg = sb.toString().substring(0, sb.toString().length() - 1);

        throw new ValidationException(msg);
    }
}

这里是发现者:

public class OSGiServiceDiscoverer implements ValidationProviderResolver {

    @Override
    public List<ValidationProvider<?>> getValidationProviders() {
        List<ValidationProvider<?>> providers = new ArrayList<ValidationProvider<?>>(1);
        providers.add(new HibernateValidator());
        return providers;
    }
}

在 pom 中,我为 OSGi 添加了以下导入:

javax.validation,
javax.validation.bootstrap,
javax.validation.constraints,
javax.validation.spi,
org.hibernate.validator,

有人知道我做错了什么吗?

谢谢

最佳答案

我终于自己找到了解决方案。 原因是,带注释的类与验证类在一个单独的包中,并且我没有添加 javax.validation 依赖项。所以注释被忽略了,验证没有功能

关于java - 在 OSGi 中验证 Pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26716110/

相关文章:

maven-surefire-plugin 在 Spring Boot 2.2.2.RELEASE 及更高版本中不起作用

java - maven 中 javac 编译顺序错误的解决方法

java - OSGi 容器何时开始使用运行时添加的更新版本包的导出?

Java 用像素处理颜色的工作原理

java - 用 json 数据填充列表并从中获取值

Maven surefire suiteXmlFile 可能性

java - Felix OSGi 容器内的 Spring Rest Json 服务

java - OSGi:Apache Felix Maven 捆绑插件和 Javadoc

java - 如何在另一个类中使用来自一个类的 Action Listener 的目录路径变量?

java - 字母表中的移位字符