【问题标题】:Exception in thread "main" java.util.ServiceConfigurationError [closed]线程“主”java.util.ServiceConfigurationError中的异常[关闭]
【发布时间】:2016-06-21 13:40:47
【问题描述】:

Hibernate 3.2 出现此错误,使用 ServiceRegistryBuilder 解决 这是我的代码:

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

这是代码。

【问题讨论】:

  • 我收到此错误,如何解决?
  • 再说一遍,你想做什么?
  • 我正在尝试使用休眠在 MYsql 中输入数据并收到此错误。
  • 你能发布你的代码吗?
  • @SuperbSaif 您的代码应该作为编辑进入问题。不是评论。

标签: java hibernate jakarta-ee orm sessionfactory


【解决方案1】:

你有不同版本的 Hibernate。应该是4以上。根据指南,您应该使用以下语法

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

【讨论】:

  • 谢谢,现在工作正常!!!
  • 我遇到了同样的错误@SuperbSaif
猜你喜欢
  • 2014-03-20
  • 1970-01-01
  • 2014-01-12
  • 2014-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 2012-08-30
相关资源
最近更新 更多