![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
В одном package описано два различных сервлета, как обратиться из одного сервлета к методам другого?
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
-------------------- |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Мне как раз нужно что-нить вроде:
а он depricated ![]() RequestDispatcher не пдходит, потомучто там нужно не forward-ить request, а именно достучаться до методов одного сервлета из другого -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Ну так просто создай инстанс сервлетa и вызывай егo методы. Или я нe так понял ?
-------------------- |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Не, это не подойдёт. Ситуация такая
Сервлет 1: обрабатывает HTTP запросы Сервлет 2: обеспечивает связь с некой удалённой БД (проверяет через некие отрезки времени если соединения нет, то пытается поднять его). Так же содержит простейшие API для работы с этой БД. Дак вот ситуцаия такая - из сервлета 1 нужно обратиться к БД через сервлет 2. Инстанс создавать нельзя потомучто нужно обратиться именно к тому что торчит в памяти, потомучто он соединён с БД. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 1 Всего: 16 |
Я бы переделал архитектуру приложения. Например, зарегистрировал DataSource в JNDI.
-------------------- |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Но в память можно положить обычный класс, прицепив его к ServletContext. Тогда этот инстанс можно будет получать откуда угодно через getAttribute.
Если нужно чтобы это все-таки был сервлет, можно использовать URLConnection. -------------------- |
|||
|
||||
3,14 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Это не реально, сделать этого мне не дадут
![]()
![]() -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||
|
|||||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Может где есть API по Tomcat-овским библиотекам, думаю что через них это должно решаться элементарно
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Но раз это сервлет, то предполагается, что он должен обрабатывать POST/GET реквесты? -------------------- |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
Понятно что doGet, doPost, service сработают, но еть не то. Попробую обьяснить по подробней:
На сайт понадобилось добавить возможность дёргать данные из удалённой БД. Делается еть так: открывается TCP сокет к хосту БД, в сокет записывается ряд команд (ничего общего с SQL) и оттуда в ответ приходят данные. Простейшая имплементация этого элементарна, но проблема в том что каждый раз создавать сокет заново и авторизоваться слишком долго, поэтому желательно чтоб к моменту клиентского запроса сокет уже бы был открыт. Хранить сам сокет в основном сервлете (сервлет 1) плохо по следующей причине : в случае падение конекта (а если он упадёт то в лучшем случае появится минут через 10) при каждой попытке прочитать что-то из БД пользователем придётся пытаться конектиться по новой, что будет сильно тормозить систему. Для обхода этой проблемы я решил создать отдельный сервлет (сервлет 2), который каждые n-минут проверяет не упал ли конект, а если упал то пытается поднять. А сервлет 1 просто пользуется открытым сервлетом 2 конектом. -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
Но ведь можно создать объект класса (не сервлета), который будет этим заниматься; грузить его при загрузке приложения, подцепляя к контексту этого приложения. Оттуда он будет доступен всем сервлетам.
-------------------- |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
А как сделать чтоб он автоматически через нек-ие переоды времени проверял доступна связь или нет?
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 13 Всего: 172 |
так же, как бы ты сделал для любого другого обычного класса - запусти тред / таймер.
-------------------- |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: 3 Всего: 24 |
В какой процедуре его запускать, не в service-е же? Обьясни пжайлуста, ато я совсем с этим не знаком
![]() -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |