我编写了一个小的hibernate应用程序,并获得以下stacktrace:
org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:154) at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:312) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857) at com.beingjavaguys.hbn.HibernateUtil.buildSessionFactory(HibernateUtil.java:18) at com.beingjavaguys.hbn.HibernateUtil.<clinit>(HibernateUtil.java:10) at crud.UserDao.addUser(UserDao.java:12) at com.beingjavaguys.hbn.App.main(App.java:53) Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider ...
我不明白这个错误的原因。
码:
Configuration configuration = new Configuration(); configuration.configure(); ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings( configuration.getProperties()).build(); return configuration.buildSessionFactory(serviceRegistry); // exception thrown here
我的pom.xml:
... <dependencies> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>4.3.5.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>5.1.1.Final</version> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>4.0.4.Final</version> </dependency> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.0-api</artifactId> <version>1.0.1.Final</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.5.Final</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.0.0.GA</version> <scope>provided</scope> </dependency> ... ...
我已经阅读了相关主题,但是我真的不知道如何解决它-我不想推出Hibernate 4.0版本。
如何解决?
Hibernate Validator 5x与validation-api 1.0.x不兼容
JPA 2.0:在JPA2.0中使用javax.validation。*包的异常