Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / DataSource - JBoss и PostgreSQL / 3 сообщений из 3, страница 1 из 1
09.08.2007, 17:12:26
    #34717860
poltora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataSource - JBoss и PostgreSQL
Уперся в стену - не могу состыковать корпоративный бин (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>
...
Рейтинг: 0 / 0
09.08.2007, 17:37:51
    #34717960
expp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataSource - JBoss и PostgreSQL
ещё стектрэйс ....
...
Рейтинг: 0 / 0
10.08.2007, 19:01:40
    #34720964
poltora
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataSource - JBoss и PostgreSQL
После чтения мануалов, гугления форумов и танцев с бубном удалось мне получить коннект к базе.

Итак, для связки бинов(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:/)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / DataSource - JBoss и PostgreSQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]