2014-07-09 22 views
18

tôi viết ứng dụng Hibernate nhỏ và nhận được sau stacktrace:java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider

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

Tôi không hiểu lý do của sai lầm này.

mã:

 Configuration configuration = new Configuration(); 
     configuration.configure(); 
     ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
       configuration.getProperties()).build(); 
     return configuration.buildSessionFactory(serviceRegistry); // exception thrown here 

pom.xml của tôi:

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

Tôi đã đọc chủ đề liên quan nhưng tôi thực sự không hiểu làm thế nào để sửa chữa nó - Tôi không muốn tung ra để ngủ đông phiên bản 4.0.

Làm thế nào để sửa chữa nó?

Trả lời

24

Chỉ cần loại bỏ phụ thuộc javax.validation

<dependency> 
    <groupId>javax.validation</groupId> 
    <artifactId>validation-api</artifactId> 
    <version>1.0.0.GA</version> 
</dependency> 

Đó cố định vấn đề cụ thể này vào cuối của tôi.

+0

giải pháp này hoạt động trên JDK9. Cảm ơn. –

Các vấn đề liên quan