|
|
|
новичок
      
участник
Last Login: 12.11.2007 16:22
Сообщ.: 8,
Visits: 18
|
|
Уперся в стену - не могу состыковать корпоративный бин (ejb bmp) с базой данных PostgreSQL. В коде пытаюсь получить DataSourcedataSource = (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>
|
|
|
|
|
Supreme 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
|
|
|
|
|
новичок
      
участник
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:/)
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.03.2008 23:02
Сообщ.: 2 077,
Visits: 21 402
|
|
| Дык в посте который я дал и было написано то же самое. Зачем надо было с бубном танцевать то?:)
|
|
|
|
|
новичок
      
участник
Last Login: 12.11.2007 16:22
Сообщ.: 8,
Visits: 18
|
|
| дык вот как все сплясал - сразу видишь все тонкости, а до тех пор волосы на голове хотел рвать - в тонне исходников и мануалов все было по разному :-)
|
|
|
|