线程“主”中的异常java.util.ServiceConfigurationError [英] Exception in thread "main" java.util.ServiceConfigurationError

查看:415
本文介绍了线程“主”中的异常java.util.ServiceConfigurationError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这个错误发生在Hibernate 3.2中,并且通过使用 ServiceRegistryBuilder
解决了这是我的代码:

  public class HibernateTest {
public static void main(String [] args){$ b $ 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();


$ / code $ / pre
$ b $ p


 线程main中的异常java.util.ServiceConfigurationError:org.hibernate.boot.registry.selector.StrategyRegistrationProvider:Provider org.hibernate.cache.infinispan.StrategyRegistrationProviderImpl not在java.util.ServiceLoader.fail找到
(ServiceLoader.java:231)$ java.util.ServiceLoader.access
(ServiceLoader.java:181)$ java.util.ServiceLoader
$ LazyIterator.next(ServiceLoader.java:365)$ b $在java.util.ServiceLoader $ 1.next(ServiceLoader.java:445)
在org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl。 loadJavaServices(ClassLoaderServiceImpl.java:340)
位于org.hibernate.boot.registry.selector.internal.StrategySelectorBuilder.buildSelector(StrategySelectorBuilder.java:162)
位于org.hibernate.boot.registry.BootstrapServiceRegistryBuilder。在org.hibern上构建(BootstrapServiceRegistryBuilder.java:222)
ate.cfg.Configuration。< init>(Configuration.java:119)

这是错误同时用错误的API执行hibernate框架。
通过更改我的代码来解决这个问题:

  import org.hibernate.Session; 
import org.hibernate.SessionFactory;
导入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);
}

会话会话= sessionFactory.openSession();
session.beginTransaction();
session.save(user);
session.getTransaction()。commit();


这是代码。

解决方案

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

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


This error is occuring with Hibernate 3.2 and resolved by using ServiceRegistryBuilder This is my code:

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

Error:

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)

This was the error while executing the hibernate framework with wrong api's. This problem was resolved by changing my code like this:

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

This was the code.

解决方案

You have different version of Hibernate. Probably 4 and above. According to guideline you should use following syntax

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

这篇关于线程“主”中的异常java.util.ServiceConfigurationError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆