Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate + JBoss, проблемы деплоймента 
:(
    Опции темы
Xpoft
Дата 20.7.2006, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.12.2005

Репутация: 1
Всего: 1



Никак не получается заставить работать Hibernate через JBoss. Hibernate 3.0, JBoss 4.0.4.
Сам EAR отлично деплоится, и DataSource жив, EJB компоненты тоже работают.

orgs.har:
META-INF/hibernate-service.xml
Orgs.class
Orgs.hbm.xml

hibernate-service.xml:
Код

<server>
    <mbean code="org.jboss.hibernate.jmx.Hibernate" name="jboss.har:service=Hibernate">
        <attribute name="DatasourceName">java:/jdbc/PostgresDS</attribute>
        <attribute name="Dialect">org.hibernate.dialect.PostgreSQLDialect</attribute>
        <attribute name="SessionFactoryName">java:/hibernate/SessionFactory</attribute>
        <attribute name="CacheProviderClass">org.hibernate.cache.HashtableCacheProvider</attribute>
        <attribute name="ShowSqlEnabled">true</attribute>
    </mbean>
</server>

Test.ear:
META-INF/application.xml
META-INF/jboss-app.xml
orgs.har

jboss-app.xml:
Код

<!DOCTYPE jboss-app PUBLIC
          "-//JBoss//DTD J2EE Application 1.4//EN"
          "http://www.jboss.org/j2ee/dtd/jboss-app_4_0.dtd">
<jboss-app>
    <module>
        <har>orgs.har</har>
    </module>
</jboss-app>

Во время деплоймента в JBoss смущает запись в логах:
Код

23:35:40,825 INFO  [SessionFactoryImpl] building session factory
23:35:40,825 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
23:35:40,825 INFO  [NamingHelper] JNDI InitialContext properties:{}
23:35:40,840 INFO  [Hibernate] SessionFactory successfully built and bound intoJNDI [java:/hibernate/SessionFactory]

Если в клиенте попробывать найти запись в JNDI, то ловится exception:
Код

javax.naming.NameNotFoundException: hibernate not bound

Код

Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY,
    "org.jnp.interfaces.NamingContextFactory");
env.put(Context.PROVIDER_URL,
    "localhost:1099");      
try
{
    InitialContext ctx = new InitialContext(env);
    ctx.lookup("java:/hibernate/SessionFactory")
}
catch (NamingException e)
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}

В документации по Hibernate в JBoss примерно такой пример (не считая свойств контекста).
В инете нашёл вариант, где в файле hibernate-service.xml значение аттрибута SessionFactoryName задаётся без "java:/", т.е.
Код

<server>
...
        <attribute name="SessionFactoryName">hibernate/SessionFactory</attribute>
...
</server>

Но при таком варианте ctx.lookup вообще ругается на отсутствие класса org/apache/commons/logging/LogFactory.
Код

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

Добавляем пакет commons-logging, раз так нужно.
Теперь выдаётся более осмысленная ошибка:
Код

20.07.2006 23:44:37 org.hibernate.impl.SessionFactoryObjectFactory getInstance
WARNING: Not found: 8a739a910c8d795d010c8d79adb20001

, где "8a739a910c8d795d010c8d79adb20001" этот как раз кусочек смущающего лога (виден при DEBUG детализации лога)
Код

23:46:37,106 DEBUG [SessionFactoryObjectFactory] registered: 8a739a910c8d795d010c8d79adb20001 (unnamed)
23:46:37,106 INFO  [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
23:46:37,106 DEBUG [SessionFactoryImpl] instantiated session factory
23:46:37,106 DEBUG [SessionFactoryImpl] obtaining JTA TransactionManager
23:46:37,106 INFO  [NamingHelper] JNDI InitialContext properties:{}
...
23:46:37,137 DEBUG [SessionFactoryImpl] Returning a Reference to the SessionFactory
23:46:37,137 INFO  [Hibernate] SessionFactory successfully built and bound intoJNDI [hibernate/SessionFactory]

Как нормально деплоить hibernate классы в JBoss, чтобы их можно было использовать в клиентской части? 
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0569 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.