2015-11-16 6 views
0

Я действительно схожу с ума. У меня есть такой код:Конфигурация спящего режима не работает

private SessionFactory getSessionFactory() { 

    Configuration conf = new Configuration(); 

    System.out.println("before"); 
    conf.configure("hibernate.cfg.xml"); 
    System.out.println("after"); 

    StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(conf.getProperties());  
    SessionFactory sessionFactory = conf.buildSessionFactory(ssrb.build()); 
    return sessionFactory; 

} 

я поставил проект в Eclipse, с папкой Src, который содержит пакеты и hibernate.cfg.xml файл. Когда я запускаю проект с использованием Eclipse, клиент получает сеанс штрафа (> до < и> после <).

Теперь: у меня также есть цель Ant для запуска моего проекта, и я уверен, что hibernate.cfg.xml находится в пути к классам, но когда я запускаю программу, приложение не печатает> после <. Никаких исключений нет, но в конечном итоге я получаю Caused by: java.lang.IllegalStateException: Could not locate SessionFactory in JNDI.

Кто-нибудь? Благодарю.

ответ

0

Проблема была в том, что файл был не в нужном месте. Я расширил свой скрипт Ant, чтобы скопировать ресурс в корень моего пути к классам, используя следующую цель.

<target name="copy-resources"> 
    <copy todir="${targetdir}"> 
     <fileset dir="${sourcedir}"> 
      <exclude name="**/*.java"/> 
     </fileset> 
    </copy> 
</target> 
-1
Configuration cf = new Configuration(); 

    // cf.setNamingStrategy(ImprovedNamingStrategy.INSTANCE); 
    cf.setProperty("hibernate.connection.datasource", datasourceJNDIName); 


    cf.configure("hibernate.cfg.xml"); 

    ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder() 
      .applySettings(cf.getProperties()).build(); 

    SessionFactory sessionFactory = cf.buildSessionFactory(serviceRegistry); 
+0

Спасибо за ваш ответ kamel2005, но не могли бы вы уточнить? – dasnervtdoch

+0

Возможно, вам не хватает этого свойства: cf.setProperty ("hibernate.connection.datasource", datasourceJNDIName); «datasourceJNDIName» String - это имя jndi, как на вашей стороне сервера – kamel2005

+0

, то же самое для других обязательных свойств, таких как имя драйвера драйвера драйвера имени пользователя и URL-адрес, – kamel2005

Смежные вопросы