2016-03-07 4 views
0

Эта ошибка встречающийся с Hibernate 3.2 и решены с помощью ServiceRegistryBuilder Это мой код:Исключение в потоке "главный" java.util.ServiceConfigurationError

public class HibernateTest { 
    public static void main(String[] args) { 
    UserDetails user = new UserDetails(); 
    user.setUserId(1); 
    user.setUserName("Sam"); 
    SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
    Session session = sessionFactory.openSession(); 
    session.beginTransaction(); 
    session.save(user); 
    session.getTransaction().commit(); 
      } 
    } 

Ошибка:

Exception in thread "main" java.util.ServiceConfigurationError: org.hibernate.boot.registry.selector.StrategyRegistrationProvider: Provider org.hibernate.cache.infinispan.StrategyRegistrationProviderImpl not found 
    at java.util.ServiceLoader.fail(ServiceLoader.java:231) 
    at java.util.ServiceLoader.access$300(ServiceLoader.java:181) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:365) 
    at java.util.ServiceLoader$1.next(ServiceLoader.java:445) 
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:340) 
    at org.hibernate.boot.registry.selector.internal.StrategySelectorBuilder.buildSelector(StrategySelectorBuilder.java:162) 
    at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:222) 
    at org.hibernate.cfg.Configuration.<init>(Configuration.java:119) 

Это было ошибка при выполнении спящего режима с неправильным api. Эта проблема была решена путем изменения моего кода, как это:

import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 
public class HibernateTest { 
private static SessionFactory sessionFactory; 
public static void main(String[] args) { 
    UserDetails user = new UserDetails(); 
    user.setUserId(1); 
    user.setUserName("Sam"); 
    if (sessionFactory == null) { 
      Configuration configuration = new Configuration().configure(); 
      ServiceRegistryBuilder registry = new ServiceRegistryBuilder(); 
      registry.applySettings(configuration.getProperties()); 
      ServiceRegistry serviceRegistry = registry.buildServiceRegistry(); 
      sessionFactory = configuration.buildSessionFactory(serviceRegistry);   
     } 

    Session session = sessionFactory.openSession(); 
    session.beginTransaction(); 
    session.save(user); 
    session.getTransaction().commit(); 
} 
} 

Это был код.

+2

И вопросом есть? – kosa

+0

Я получаю эту ошибку, как ее решить? –

+0

Опять же, что вы пытаетесь сделать? – kosa

ответ

2

У вас есть другая версия Hibernate. Вероятно, 4 и выше. Согласно руководящим вы должны использовать следующий синтаксис

http://www.codejava.net/frameworks/hibernate/building-hibernate-sessionfactory-from-service-registry

+0

Спасибо, отлично работаю сейчас !!!! –

+0

Я столкнулся с той же ошибкой @SuperbSaif – Jigar