![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
У меня есть клиент и сервер. Сервер берет данные из БД с помощью Hibernate и отдает их клиенту. Клиент выводит все это в таблицы (JTable). Пользователь может править таблицы и после окончания работы все данные пересылаются на сервер и сервер обновляет БД.
Данные я передаю в виде строк, которые сгруппированы в ArrayList'ы, тоесть передается 5 штук объектов типа ArrayList<String>. Такой подход меня не устраивает. Нужно сделать что то типа: Клиент посылает запрос на сервер, тот в сою очередь берет данные из БД и отсылает назад. Или, раз уж у меня хибернейт, передавать объекты. Как это сделать? Пригодятся примеры небольших клиент-серверных программ, которые работают с БД. Будет идеально если там еще хибернейт прикручен. Хотелось бы посмотреть как там организована передача запросов по сети. Я Добавлено через 3 минуты и 26 секунд Вот минимальный пример от Антона Сабурова http://antonsaburov.narod.ru/students/part18.html. Как переделать его чтобы работало по сети? -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
CrasyMen |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Я хочу передавать сериализированные объекты по сети. Но объекты эти - это объекты классов сущностей (entity), которые хибернейт проецирует на таблицы в БД.
Вот примеры таких классов: Member:
Group:
Таких классов у меня всего 5 штук. Я просто скопировал эти классы (объекты которых которых я буду передавать по сети) в проект клиента (сервер и клиент у меня находятся в отдельных проектах InteliJ IDEA) Мои классы требуют пакет javax.persistence.*. Ладно, подключил я либу и к клиенту хоть мне это и не нравится. Еще проблема: объекты класса Group передаются по сети а при передачи объектов класса Member возникает ексцепшн:
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
||||||
|
|||||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
1. Правильно ли я сделал что просто скопировал файлы (классы) от сервера клиенту? Может это делается кок-то по-другому? Не нашел инфы об этом.
2. Правильно ли я сделал что передаю по сети объекты классов сущностей? 3. Почему объекты класса Group передаются по сети без проблем, а при передачи объектов класса Member возникает ексцепшн (см. пост выше)? -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 3 Всего: 73 |
Может Вам посмотреть в сторону RMI ( http://ru.wikipedia.org/wiki/RMI )
-------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Сколько времени надо чтобы разобраться с RMI для решения моей задачи?
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
Vasay |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2097 Регистрация: 8.3.2006 Репутация: 3 Всего: 73 |
Не знаю, от Вас зависит. -------------------- Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны. |
|||
|
||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
похоже вопросы №2 и №3 не решатся с помощью RMI -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Там проблема с сериализацией. В классе Member есть поле group. Из-за него объекты некорректно сериализируются. Щас пробую переделать сериализацию. Пока не получается. Это сообщение отредактировал(а) CrasyMen - 26.4.2009, 17:44 -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
CrasyMen |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Ладно. Буду передаваемые объекты переганять в колекцию строк перед отправкой.
Общение между сервером и клиентом думаю сделать в таком виде: Код на сервере:
Нормально так делать? -------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
||||
|
|||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Может быть я невнятно объяснил суть вопроса? Недоумеваю почему тишина.
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
вот это сообщение на клиенте ? -
наверное, надо отменять в hibernate режим lazy инициализации, чтобы он не модифицировал ваш обьект. Это сообщение отредактировал(а) COVD - 28.4.2009, 21:35 |
|||
|
||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
COVD, спасибо. Ловите плюсик. Надо же. Я думал я подключил ее, даже выше об этом писал.
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Тут где-то ivq тему открыл про SerializableProxy, и я только сейчас понял, о чем там речь. Вообще это скверно, что надо hibernate прописывать на клиенте. Расплата за "удобство".
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |