2

Oracle 11g에서 최대 절전 모드 4.2를 사용하려고합니다. 다음 내있는 hibernate.cfg.xml 파일입니다 : 내가 MySQL의 데이터베이스 및 관련 최대 절전 모드를 사용하는 경우이 잘 작동Oracle11g + hibernate 4.2 buildSessionFactory가 Nullpointer 예외를 던졌습니다

public class HibernateUtil { 

private SessionFactory sessionFactory; 

public HibernateUtil() { 
    sessionFactory = createSessionFactory(); 
} 

private static SessionFactory createSessionFactory() { 
     SessionFactory factory = null; 
    try { 
     Configuration configuration = new Configuration(); 
     configuration.configure("resources/hibernate.cfg.xml"); 
     factory = configuration.buildSessionFactory();   
    } catch (Throwable ex) { 

     System.err.println("Initial SessionFactory creation failed."); 
     ex.printStackTrace(); 
     throw new ExceptionInInitializerError(ex); 

    } 
    return factory; 

} 

public SessionFactory getSessionFactory(){ 
    return this.sessionFactory; 
} 
} 

:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory name="sessionFactory"> 
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property> 
<property name="hibernate.connection.password">[email protected]</property> 
<property  name="hibernate.connection.url">  
jdbc:oracle:thin:ourhost:1521:oursid</property> 
<property name="hibernate.connection.username">OURUSER</property> 
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property> 

<mapping resource="resources/mapping/User.hbm.xml"/> 
</session-factory> 
</hibernate-configuration> 

그리고 세션 공장을 얻기 위해 내 폴더의 유틸리티 클래스는 다음과 같다. cfg.xml. 위에서 언급 한 것처럼 Oracle과 동일한 것을 사용하면 전혀 연결되지 않습니다. 나는 뒤에 오는 것을 얻고있다 :

Initial SessionFactory creation failed. 
    java.lang.NullPointerException 
at  org.hibernate.engine.jdbc.internal. 
    JdbcServicesImpl.configure(JdbcServicesImpl.java:207) 
at org.hibernate.service.internal. 
    StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) 
at org.hibernate.service.internal. 
    AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) 
at org.hibernate.service.internal. 
    AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131) 
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:78) 
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2283) 
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2279) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1748) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1788) 
at 
com.bosch.asaw.utilities.HibernateUtil.createSessionFactory(HibernateUtil.java:25) 
at com.bosch.asaw.utilities.HibernateUtil.<init>(HibernateUtil.java:17) 
at com.bosch.asaw.dao.testhibernate.main(testhibernate.java:19) 
    Exception in thread "main" java.lang.ExceptionInInitializerError 
at 
com.bosch.asaw.utilities.HibernateUtil.createSessionFactory(HibernateUtil.java:30) 
at com.bosch.asaw.utilities.HibernateUtil.<init>(HibernateUtil.java:17) 
at com.bosch.asaw.dao.testhibernate.main(testhibernate.java:19) 
    Caused by: java.lang.NullPointerException 
at 
org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:207 
at org.hibernate.service.internal. 
StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75) 
at org.hibernate.service.internal. 
AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159) 
at  

org.hibernate.service.internal.AbstractServiceRegistryImpl. 
getService(AbstractServiceRegistryImpl.java:131) 
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:78) 
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2283) 
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2279) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1748) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1788) 
at 
com.bosch.asaw.utilities.HibernateUtil.createSessionFactory(HibernateUtil.java:25) 
... 2 more 

누군가는 나가 틀린 무슨을 저에게 말하는 것을 말할 수있다. 나는 Oracle 서버에서 포트, sid 및 호스트 이름을 두 번 확인했습니다. 도와주세요.

+0

는 HTTP를 참조하십시오 //stackoverflow.com/questions/24422993/hibernate-4-3-5-is-not-working-with-oracle10g-databa se/24430185 # 24430185 –

답변

0

세션 작성 팩토리에 대한 새 코드를 사용해 보셨습니까?

SessionFactory factory = null; 
try { 
    Configuration configuration = new Configuration(); 
    configuration.configure("resources/hibernate.cfg.xml"); 

    ServiceRegistryBuilder serviceRegistryBuilder = new ServiceRegistryBuilder(); 
    serviceRegistryBuilder.applySettings(configuration.getProperties()); 
    serviceRegistry = serviceRegistryBuilder.buildServiceRegistry(); 

    factory = configuration.buildSessionFactory(serviceRegistry); 
} catch (Throwable ex) { 

    System.err.println("Initial SessionFactory creation failed."); 
    ex.printStackTrace(); 
    throw new ExceptionInInitializerError(ex); 

} 
0

구성 파일에 문제가 있다고 생각합니다.

다음 oracle 구성 파일을 참조하십시오.

은 hibernate.cfg.xml로

<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 

<hibernate-configuration> 
<session-factory> 
<!-- Database connection settings --> 
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> 
<property name="connection.username">ranga</property> 
<property name="connection.password">ranga</property> 
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:XE</property> 

<!-- JDBC connection pool (use the built-in) --> 
<property name="connection.pool_size">1</property> 

<!-- SQL dialect --> 
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> 

<!-- Disable the second-level cache --> 
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

<!-- Echo all executed SQL to stdout --> 
<property name="show_sql">true</property> 

<!-- Drop and re-create the database schema on startup --> 
<property name="hbm2ddl.auto">create</property> 

<mapping resource="com/ranga/mapping/Persom.hbm.xml"/> 

</session-factory> 
</hibernate-configuration>

HibernateUtil.java

package com.ranga.util; 

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.hibernate.service.ServiceRegistry; 
import org.hibernate.service.ServiceRegistryBuilder; 

public class HibernateUtil { 
    private static final SessionFactory sessionFactory; 
    private static final ServiceRegistry serviceRegistry; 
    static { 
     try { 
      // Create the SessionFactory from hibernate.cfg.xml 
      Configuration configuration = new Configuration(); 
      configuration.configure(); 
      serviceRegistry = new ServiceRegistryBuilder().applySettings(
      configuration.getProperties()).buildServiceRegistry(); 
      sessionFactory = configuration.buildSessionFactory(serviceRegistry); 
     } catch (Throwable ex) { 
      // Make sure you log the exception, as it might be swallowed 
      System.err.println("Initial SessionFactory creation failed." + ex); 
      throw new ExceptionInInitializerError(ex); 
     } 
} 

public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 

public static void closeSessionFactory() { 
     if (sessionFactory != null) 
      sessionFactory.close(); 
    } 
} 

당신이 완전한 예제 프로그램, GitHub의에서 다운로드를 원하는 경우 (https://github.com/rangareddy/Hibernate4ExampleUsingMaven/는)

관련 문제