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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Связывание Bean с БД. 
:(
    Опции темы
Gugle
Дата 22.8.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток!

Создал Bean компонент. Использую сервер FlassFish V2 на одной машине и в него загружаю компонент. На соседней машине крутится MySQL сервер. Теперь хочу с помощью ORM менеджера соединиться с MySQL, для этого используется EntityManager. 
Вот кусок кода:
Код

@Stateless(name="TestBean", mappedName="ejb/TestBean")
public class TestBean implements ru.test.TestRemote, ru.test.TestLocal {

    public TestBean() {
    }

    /**Методы описанные в TestRemote*/


    @PersistenceContext(unitName="MyPersistensUnit") // *
    private EntityManager _manager;
}


* Тут можно задать любое имя?
** Как сказать менеджеру где находтся моя БД?
PM MAIL   Вверх
alexadr
Дата 22.8.2008, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



По первой звезде:
Имя не любое, а то которое указано в persistence.xml:
Код

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="Some_Unit" transaction-type="JTA">
    </persistence-unit>
</persistence>

В данном случае должен быть "Some_Unit"

По второй звезде:
1. В persistence.xml файле надо указать в элементе:
<jta-data-source>

jndi имя для датасорса который создан в aplication сервере.

2. Либо можно указать это в свойствах конкретного провайдера. Например для гибернейта:
Код

<properties>
         <property name="hibernate.connection.url" value="some_url"/>
         <property name="hibernate.connection.username" value="some_name"/>
         <property name="hibernate.connection.password" value="some_pass"/>
</properties>


Это сообщение отредактировал(а) alexadr - 22.8.2008, 11:27
PM MAIL   Вверх
Gugle
Дата 22.8.2008, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо alexadr, помогло.

При создании "клиента" для работы с Bean компонентом в надо настроить jndi конект.
Не могу понять откуда брать эти настройки?

Код

public class client {
    
    /** Creates a new instance of client */
    public client() {
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception {
        // TODO code application logic here
        // Настройки jndi контекста.
        Properties jndiProperties = new Properties();
        jndiProperties.setProperty("?!?", "?!?"); // Что тут прописать для соедения с компонентом???

        jndiProperties.setProperty("java.naming.provider.url", "iiop://127.0.0.1:3700");
        Context jndiContext = new InitialContext(jndiProperties);
        
        // Получили ссылку на Bean.
        WareControlRemote control = (WareControlRemote)jndiContext.lookup("ejb/TestBean");
        
        ...
    }
    
}

PM MAIL   Вверх
alexadr
Дата 22.8.2008, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



У меня это выглядит примерно так:
Код

        Hashtable<String, String> env = new Hashtable<String, String>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
        env.put(Context.PROVIDER_URL, "iiop://localhost:7001");
        Context ctx = new InitialContext(env);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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