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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> DataSource - JBoss и PostgreSQL 
:(
    Опции темы
poltora
Дата 9.8.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Уперся в стену - не могу состыковать корпоративный бин (ejb bmp) с базой данных PostgreSQL.
В коде пытаюсь получить DataSource

dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/MySource");

но получаю исключение

16:21:24,702 ERROR [LogInterceptor] TransactionRolledbackLocalException in method: public abstract kkar.agent.LocalAgent 
kkar.agent.LocalAgentHome.findByDetails(kkar.agent.AgentDetails) throws 
javax.ejb.FinderException,kkar.util.AuthorizedException, causedBy:
javax.ejb.EJBException: Could not dereference object

Как получить соединение с БД для корпоративного бина (entity bean) с персистенцией, управляемой бином (BMP), используя DataSource?
Как правильно прописывать в дексрипторах JNDI имена?

Для того, что бы JBoss знал о PostgreSQL - скопировал 
postgresql-8.0.309.jdbc2
в
<JBoss_dir>\server\default\lib

в
<JBoss_dir>\server\default\deploy
создал postgres-ds.xml по подобию существующего hsqldb-ds.xml

далее указываю листинги файлов postgresql-ds.xml, ejb-jar.xml, jboss.xml


postgresql-ds.xml

<datasources>
  <local-tx-datasource>
    <jndi-name>MySource</jndi-name>
    <connection-url>jdbc:postgresql://127.0.0.1:5432/kkar</connection-url>
    <driver-class>org.postgresql.Driver</driver-class>
    <user-name>kkar</user-name>
    <password>12345</password>    
    ...
</local-tx-datasource>
</datasources>


ejb-jar.xml

    <entity>
    ...
        <resource-ref>
            <res-ref-name>jdbc/MySource</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
            <res-sharing-scope>Shareable</res-sharing-scope>
        </resource-ref>
    </entity>

jboss.xml

<jboss >
    <enterprise-beans>
        <entity>
            <ejb-name>AgentEJB</ejb-name>
            <jndi-name>MyAgent</jndi-name>
            <resource-ref>
                <res-ref-name>jdbc/MySource</res-ref-name>
                <jndi-name>MySource</jndi-name>
            </resource-ref>
        </entity>
    </enterprise-beans>
</jboss>
PM MAIL WWW   Вверх
ekr
Дата 10.8.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


...и это пройдет...
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 6.5.2007
Где: Moscow, RU

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



Цитата(poltora @  9.8.2007,  15:54 Найти цитируемый пост)
dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/MySource");

попробуйте 
Код

ic.lookup("jdbc/MySource");



--------------------
и это пройдет....

http://ekrs.blogspot.com
PM WWW   Вверх
poltora
Дата 10.8.2007, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



После чтения мануалов, гугления форумов и танцев с бубном удалось мне получить коннект к базе. 

Итак, для связки бинов(ejb bmp под апп.сервером JBoss) и БД (PostgreSQL) используется всего 3 файла - ejb-jar.xml, jboss.xml, postgres-ds.xml

ejb-jar.xml - связывает <res-ref-name> с javax.sql.DataSource
jboss.xml - сопоставляет этот <res-ref-name> с JNDI-именем (должно указываться с префиксом java:/).
postgres-ds.xml - связывает БД с JNDI(указывается БЕЗ префика java:/)


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

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

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


 




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


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

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