javax.validation.ValidationException: HV000183: 'javax.el.ExpressionFactory' लोड करने में असमर्थ




hibernate maven (4)

मैं हाइबरनेट सत्यापनकर्ता के साथ बहुत सरल आवेदन लिखने की कोशिश करता हूं:

मेरे कदम:

pom.xml में निम्नलिखित निर्भरता जोड़ें:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.1.Final</version>
</dependency>

कोड लिखें:

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);

    }
}

और मुझे स्टैकट्रैक का पालन करना पड़ता है:

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

मैं क्या गलत हूँ?


यदि आप अपने सर्वर रनटाइम के रूप में टॉमकैट का उपयोग कर रहे हैं और आपको यह त्रुटि परीक्षण में मिलती है (क्योंकि परीक्षण के दौरान टॉमकैट रनटाइम उपलब्ध नहीं है) इससे ग्लासफिश के बजाय टॉमकैट एल रनटाइम को शामिल करना समझ में आता है)। यह होगा:

    <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>

बस करो

<dependency>
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <version>2.2.4</version>
</dependency>

यह निर्भरताओं के बाद pom.xml जोड़ने के बाद काम कर रहा है:

<dependency>
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <version>2.2.4</version>
</dependency>
<dependency>
   <groupId>org.glassfish.web</groupId>
   <artifactId>javax.el</artifactId>
   <version>2.2.4</version>
</dependency>

हाइबरनेट वैलिडेटर के साथ शुरू करना






hibernate-validator