DataSource - JBoss и PostgreSQL
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



DataSource - JBoss и PostgreSQL Expand / Collapse
Автор
Сообщение
09.08.2007 17:09
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
Уперся в стену - не могу состыковать корпоративный бин (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>

Сообщ. #915261
10.08.2007 4:46
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077, Visits: 21 402
http://www.velocityreviews.com/forums/t128782-lookup-a-mysql-datasource-with-a-entitybean-ejb-with-jboss.html
Сообщ. #915267
10.08.2007 19:00
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
После чтения мануалов, гугления форумов и танцев с бубном удалось мне получить коннект к базе.

Итак, для связки бинов(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:/)

Сообщ. #915277
12.08.2007 3:01
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077, Visits: 21 402
Дык в посте который я дал и было написано то же самое. Зачем надо было с бубном танцевать то?:)
Сообщ. #915286
16.08.2007 17:36
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.11.2007 16:22
Сообщ.: 8, Visits: 18
дык вот как все сплясал - сразу видишь все тонкости, а до тех пор волосы на голове хотел рвать - в тонне исходников и мануалов все было по разному :-)
Сообщ. #915381
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, mishgun, pl

Время GMT +3:00, Сейчас 1:54