CMP EJB и существующая таблица в MySQL
От: Аноним  
Дата: 22.04.05 19:21
Оценка:
Приветствую !

Возникла такая проблема ...
Есть MySQL сервер с готовой базой данных, в конфиге Application сервера прописываю Datasource
    <data-source
        class="com.evermind.sql.DriverManagerDataSource"
        name="Hypersonic"
        location="jdbc/HypersonicCoreDS"
        xa-location="jdbc/xa/HypersonicXADS"
        ejb-location="jdbc/HypersonicDS"
        connection-driver="org.hsqldb.jdbcDriver"
        username="sa"
        password=""
        url="jdbc:hsqldb:./database/defaultdb"
        inactivity-timeout="30"
    />

    <data-source
        class="com.evermind.sql.DriverManagerDataSource"
        name="KelwinDB"
        location="jdbc/KelwinDB"
        connection-driver="com.mysql.jdbc.Driver"
        username="secam"
        password="xxxxxx"
        url="jdbc:mysql://192.168.16.1:3306/kelwin"
        inactivity-timeout="30"
    />

Сервер Orion 2.0.5 но думаю, что он не должен быть виноват ... разве что настройки какие-нибудь...

При прямом обращении через JDBC драйвер с этими же параметрами, всё работает...
А вот с CMP EJB проблема, при попытке Deploy'нуть модуль получаем: jdbc/KelwinDB did not contain a cmt-dataSource/ejb-datasource
Причем сам модуль не содержит ничего интересного... кроме пустых методов управления EJB и набора абстрактных методов get/set.

При первой попытке размещения(успешной) он сам создал себе таблицу в своей локальной БД(Hypersonic) и сгенерил свой серверный дескриптор для модуля:
    <enterprise-beans>
        <entity-deployment name="shopClientEJB" location="shopClientEJB" table="shopClientEJB" data-source="jdbc/HypersonicCoreDS">
            <primkey-mapping>
                <cmp-field-mapping name="id" persistence-name="id" />
            </primkey-mapping>
            <cmp-field-mapping name="fname" persistence-name="fname" />
            <cmp-field-mapping name="mname" persistence-name="mname" />
            <cmp-field-mapping name="lname" persistence-name="lname" />
        </entity-deployment>
    </enterprise-beans>

После того, как я в этом дескрипторе поменял Datasource и table, при запуске сервера вываливается та самая ошибка.

И еще такой вопрос:
Есть ли какик-то ограничения для данных в базе для того, чтобы эти данные использовать в CMP EJB ? Или можно написать CMP EJB для абсолютно любой таблицы из БД ?

В общем прошу помощи ...! объясните, мне глупому, в чем смысл ...
Re: CMP EJB и существующая таблица в MySQL
От: Risotto Украина  
Дата: 22.04.05 20:12
Оценка:
Здравствуйте, Аноним, Вы писали:

Файлы развертки покажи (ejb-jar.xml и плюс нативный Орионовский), пожалуйста.
Кто-то сказал когда-то давно, что людям свойственно убивать тех, кого любишь. Что ж, верно и обратное.
Re[2]: CMP EJB и существующая таблица в MySQL
От: secam  
Дата: 22.04.05 20:30
Оценка:
Здравствуйте, Risotto, Вы писали:

R>Здравствуйте, Аноним, Вы писали:


R>Файлы развертки покажи (ejb-jar.xml и плюс нативный Орионовский), пожалуйста.

ejb-jar.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN' 'http://java.sun.com/dtd/ejb-jar_2_0.dtd'>
<ejb-jar>
  <enterprise-beans>
      <entity>
          <ejb-name>shopClientEJB</ejb-name>
          <home>ru.rosis.test1.shopClientHome</home>
          <remote>ru.rosis.test1.shopClient</remote>
          <local-home>ru.rosis.test1.LocalshopClientHome</local-home>
          <local>ru.rosis.test1.LocalshopClient</local>
          <ejb-class>ru.rosis.test1.shopClientBean</ejb-class>
          <persistence-type>Container</persistence-type>
          <prim-key-class>java.lang.Integer</prim-key-class>
          <reentrant>False</reentrant>
          <cmp-version>2.x</cmp-version>
          <abstract-schema-name>shopClientEJB</abstract-schema-name>
          <cmp-field>
              <field-name>id</field-name>
          </cmp-field>
          <cmp-field>
              <field-name>fname</field-name>
          </cmp-field>
          <cmp-field>
              <field-name>mname</field-name>
          </cmp-field>
          <cmp-field>
              <field-name>lname</field-name>
          </cmp-field>
          <primkey-field>id</primkey-field>
          <resource-ref>
              <res-ref-name>jdbc/KelwinDB</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>
  </enterprise-beans>
</ejb-jar>


А вот, что сотворил Orion
<?xml version="1.0"?>
<!DOCTYPE orion-ejb-jar PUBLIC "-//Evermind//DTD Enterprise JavaBeans 1.1 runtime//EN" "http://www.orionserver.com/dtds/orion-ejb-jar.dtd">

<orion-ejb-jar deployment-version="2.0.5" deployment-time="1036b98f116">
    <enterprise-beans>
        <entity-deployment name="shopClientEJB" location="shopClientEJB" wrapper="LocalshopClientHome_EntityHomeWrapper4" table="shopClientEJB" data-source="jdbc/HypersonicDS">
            <primkey-mapping>
                <cmp-field-mapping name="id" persistence-name="id" />
            </primkey-mapping>
            <cmp-field-mapping name="fname" persistence-name="fname" />
            <cmp-field-mapping name="mname" persistence-name="mname" />
            <cmp-field-mapping name="lname" persistence-name="lname" />
            <resource-ref-mapping name="jdbc/KelwinDB" />
        </entity-deployment>
    </enterprise-beans>
    <assembly-descriptor>
        <default-method-access>
            <security-role-mapping name="&lt;default-ejb-caller-role&gt;" impliesAll="true" />
        </default-method-access>
    </assembly-descriptor>
</orion-ejb-jar>
Re[3]: CMP EJB и существующая таблица в MySQL
От: Risotto Украина  
Дата: 23.04.05 09:50
Оценка:
Похоже, что это настройки Ориона, с которым я не работал. Поищи что-то, что может быть связано з ДатаСорсом. Больше ничем помочь не могу
Кто-то сказал когда-то давно, что людям свойственно убивать тех, кого любишь. Что ж, верно и обратное.
Re[4]: Orion App.Serv., настройка Datasource для MySQL.
От: secam  
Дата: 23.04.05 18:11
Оценка:
Здравствуйте, Risotto, Вы писали:

R>Похоже, что это настройки Ориона, с которым я не работал. Поищи что-то, что может быть связано з ДатаСорсом. Больше ничем помочь не могу


Да мне тоже кажется, что в Датасорсе проблема, т.к. я смотрел состояние MySQL, при перезапуске Ориона, счетчик подключений не меняется, значит он и не пытается подключиться и посмотреть базу... или не может подключиться... Буду ковырять дальше...

Если кто работал с Орионом, подскажите как правильно MySQL прописать !?
Re[5]: А решилось всё просто !
От: secam  
Дата: 23.04.05 19:05
Оценка:
Здравствуйте, secam, Вы писали:

S>Здравствуйте, Risotto, Вы писали:


R>>Похоже, что это настройки Ориона, с которым я не работал. Поищи что-то, что может быть связано з ДатаСорсом. Больше ничем помочь не могу


S>Да мне тоже кажется, что в Датасорсе проблема, т.к. я смотрел состояние MySQL, при перезапуске Ориона, счетчик подключений не меняется, значит он и не пытается подключиться и посмотреть базу... или не может подключиться... Буду ковырять дальше...


S>Если кто работал с Орионом, подскажите как правильно MySQL прописать !?


Подсказываю сам себе ... проблема решилась следующим образом:
Orion не любит, когда руками редактируют его конфигурационные XML файлы. Модули размещать у меня получалось, а вот DataSource он не добавил, несмотря на то, что в data-sources.xml я его прописал.
Отсюда вывод юзайте утилиту admin.jar и подобных проблем не возникнет.

Всем спасибо за внимание !
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.