首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >javax.validation.ValidationException: HV000183:无法加载'javax.el.ExpressionFactory‘

javax.validation.ValidationException: HV000183:无法加载'javax.el.ExpressionFactory‘
EN

Stack Overflow用户
提问于 2014-06-24 20:34:08
回答 9查看 126.1K关注 0票数 124

我尝试用hibernate验证器编写非常简单的应用程序:

我的步骤:

在pom.xml中添加以下依赖项:

代码语言:javascript
复制
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.1.Final</version>
</dependency>

编写代码:

代码语言:javascript
复制
class Configuration {
    Range(min=1,max=100)
    int threadNumber;
    //...

    public static void main(String[] args) {
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();

        Validator validator = factory.getValidator();

        Configuration configuration = new Configuration();
        configuration.threadNumber = 12;
            //...

        Set<ConstraintViolation<Configuration>> constraintViolations = validator.validate(configuration);
        System.out.println(constraintViolations);

    }
}

我得到了下面的堆栈跟踪:

代码语言:javascript
复制
Exception in thread "main" javax.validation.ValidationException: Unable to instantiate Configuration.
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:279)
    at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110)
    ...
    at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:110)
    at org.hibernate.validator.internal.engine.ConfigurationImpl.<init>(ConfigurationImpl.java:86)
    at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:276)
    ... 2 more

我做错了什么?

EN

回答 9

Stack Overflow用户

发布于 2014-11-30 02:19:15

就这么做

代码语言:javascript
复制
<dependency>
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <version>2.2.4</version>
</dependency>
票数 59
EN

Stack Overflow用户

发布于 2017-04-25 21:02:23

如果您使用tomcat作为服务器运行时,并且在测试中遇到此错误(因为tomcat运行时在测试期间不可用),那么包含tomcat el运行时而不是glassfish中的运行时是有意义的。这将是:

代码语言:javascript
复制
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-el-api</artifactId>
        <version>8.5.14</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat</groupId>
        <artifactId>tomcat-jasper-el</artifactId>
        <version>8.5.14</version>
        <scope>test</scope>
    </dependency>
票数 20
EN

Stack Overflow用户

发布于 2018-08-06 18:48:44

如果你使用的是spring boot和starters --这个依赖项同时添加了tomcat-embed-elhibernate-validator依赖项:

代码语言:javascript
复制
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24386771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档