2014-12-25 5 views
3

안녕하세요 저는 PostGreSQL에 저장된 지리 데이터를 쿼리하기 위해 Hibernate Spatial을 설정하려고했습니다. 내 코드를 실행하는 동안 다음 오류가 발생합니다. SessionFactoryCreation최대 절전 모드 공간 ServiceConfigurationError

private static SessionFactory buildSessionFactory(){ 
    try{ 
     Configuration configuration = new Configuration().configure(); 
     logger.log(Level.INFO,"Hibernate Configuration Loaded"); 
     StandardServiceRegistryBuilder builder 
       = new StandardServiceRegistryBuilder() 
       .applySettings(configuration.getProperties()) 
       ; 

     logger.log(Level.INFO,"Service registry created"); 
     return configuration.buildSessionFactory(builder.build()); 

    }catch (Throwable ex){ 
     logger.log(Level.SEVERE,"session factory creation failed",ex); 
     throw new ExceptionInInitializerError(ex); 
    } 
} 

내 종속성 및 코드에서 최대 절전 모드 - 공간을 제거하면 그것은 잘 작동에 대한

session factory creation failed 
java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.spatial.integration.SpatialIntegrator could not be instantiated 
at java.util.ServiceLoader.fail(ServiceLoader.java:224) 
at java.util.ServiceLoader.access$100(ServiceLoader.java:181) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377) 
at java.util.ServiceLoader$1.next(ServiceLoader.java:445) 
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:339) 
at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:57) 
at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247) 
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:73) 
at com.handyhome.service.database.HibernateUtil.buildSessionFactory(HibernateUtil.java:24) 
at com.handyhome.service.database.HibernateUtil.getSessionFactory(HibernateUtil.java:39) 
at com.handyhome.service.database.App.main(App.java:30) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 
Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/spi/BasicServiceInitiator 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
at java.lang.Class.getConstructor0(Class.java:2885) 
at java.lang.Class.newInstance(Class.java:350) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) 
... 13 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.service.spi.BasicServiceInitiator 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
... 18 more 

Exception in thread "main" java.lang.ExceptionInInitializerError 
at com.handyhome.service.database.HibernateUtil.buildSessionFactory(HibernateUtil.java:33) 
at com.handyhome.service.database.HibernateUtil.getSessionFactory(HibernateUtil.java:39) 
at com.handyhome.service.database.App.main(App.java:30) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:606) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134) 
Caused by: java.util.ServiceConfigurationError: org.hibernate.integrator.spi.Integrator: Provider org.hibernate.spatial.integration.SpatialIntegrator could not be instantiated 
at java.util.ServiceLoader.fail(ServiceLoader.java:224) 
at java.util.ServiceLoader.access$100(ServiceLoader.java:181) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:377) 
at java.util.ServiceLoader$1.next(ServiceLoader.java:445) 
at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.loadJavaServices(ClassLoaderServiceImpl.java:339) 
at org.hibernate.integrator.internal.IntegratorServiceImpl.<init>(IntegratorServiceImpl.java:57) 
at org.hibernate.boot.registry.BootstrapServiceRegistryBuilder.build(BootstrapServiceRegistryBuilder.java:247) 
at org.hibernate.boot.registry.StandardServiceRegistryBuilder.<init>(StandardServiceRegistryBuilder.java:73) 
at com.handyhome.service.database.HibernateUtil.buildSessionFactory(HibernateUtil.java:24) 
... 7 more 
Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/spi/BasicServiceInitiator 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2585) 
at java.lang.Class.getConstructor0(Class.java:2885) 
at java.lang.Class.newInstance(Class.java:350) 
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:373) 
... 13 more 
Caused by: java.lang.ClassNotFoundException: org.hibernate.service.spi.BasicServiceInitiator 
at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
... 18 more 

코드입니다. 하지만 테이블에 lat-long 데이터가 포함되어 있으므로 Spatial을 사용해야합니다.

+0

나도 모든 솔루션을 동일한 문제에 직면? –

답변

0

사용중인 최대 절전 모드 버전은 무엇입니까?

웹 컨테이너에서 4.2.x 이하를 사용하는 경우 세션 팩토리를 만드는이 방법은 실패합니다.

이 줄은되지 않습니다,하지만 비슷한 문제로 실행했을 때 나를 위해 일한 :

new Configuration().configure().buildSessionFactory();  
+1

나는 4.3.7-final을 사용하고있다. 그리고 제작시 더 이상 사용되지 않는 코드를 사용하고 싶지 않습니다. 이 문제의 원인이 될 수있는 단서가 있습니까? 많이 검색했지만 아무 것도 찾을 수 없습니다. – akash93

+0

웹 컨테이너에 무엇을 사용하고 있습니까? Jboss와 웹 로직은 webapp lib를 사용하기 위해 몇 가지 추가 구성을 취합니다. – gbochenek

+0

Jboss를 사용하고 있습니다. 또한이 문제가 발생하기 전에 내가 말했듯이, Hibernate 공간을 포함하고 제거 된 상태로 잘 작동 할 때만 발생합니다. Spatial에 추가 구성이 필요합니까? – akash93