java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/24652753/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
提问by
I write small hibernate application and get following 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
...
I don't understand the reason of this mistake.
我不明白这个错误的原因。
code:
代码:
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
return configuration.buildSessionFactory(serviceRegistry); // exception thrown here
my pom.xml:
我的 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>
...
...
I have read related topics but I really don't understand how to fix it - I don't want to roll out to hibernate 4.0 version.
我已阅读相关主题,但我真的不明白如何修复它 - 我不想推出休眠 4.0 版本。
How to fix it?
如何解决?
采纳答案by Hank Lapidez
Hibernate Validator 5x is not compatible with validation-api 1.0.x
Hibernate Validator 5x 与validation-api 1.0.x 不兼容
JPA 2.0 : Exception to use javax.validation.* package in JPA 2.0
回答by Stefan Georgiev
Just remove the javax.validation dependency
只需删除 javax.validation 依赖项
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
That fixed this particular problem on my end.
这解决了我的这个特殊问题。