powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Модули для WEB приложения. (как реализовать?)
25 сообщений из 25, страница 1 из 1
Модули для WEB приложения. (как реализовать?)
    #37856184
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим у меня есть некоторое веб приложение, в котором есть ряд классов, которые часто нужно исправлять. В этих класса собственно реализован парсеры разных веб страниц. Веб страницы часто меняются и нужно менять код парсеров соответственно. Классов таких дохрена. Соответственно очень часто приходится вносить изменения. Что за собой влечет пересборку всего приложения и перезалитие его на сервер, перезапуск томкота.
Возникает вопрос. А можно ли както реализовать типа модули для веб приложения? Чтоб не перезапускать целиком томкэт. Чтоб как динамические библиотеки эти модули докладывать в определенное место? Сразу возникает вопрос, надо ли будет их выгружать и потом подгружать после замены и как вообще это можно реализовать, если можно вообще.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856243
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
что ты собрал всё в кучу: пересборку (долго что ли?), деплой, перезапуск Приложения и перезапуск Томката.
Ну, и до кучи совсем забыл об удобствах пользователя.
Как обычно, программист думает только о себе.
Вот инфа пригодится:
процесс обновление веб приложения
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856303
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123 , у меня нет кладовщика и неправильных данных вводимых кладовщиком.
У меня должен постоянно быть запущен сервер. На время передеплоя, кто не успел дополучить ответ с сервера, тот получит ошибку, а кто захочет обратится к серверу то тоже получит ошибку. Хоть передеплой у меня занимает примерно секунд 5, но тем не менее. Собственно вручную происходит загрузка war на сервер, дальнейшая его распаковка там и потом уже рестарт томкота занимает секунды. За эти секунды кто-то может словить ошибки т.к. я не смотрю, да и не могу ждать, чтоб повыходили все и не заходили новые. Это происходит глубокой ночью для пользователей, но не факт, что все будут спать и не вздумается выполнять запросы к приложению. Так что как-то так.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856310
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот думаю, может можно .class файлы грузить как-то динамически..
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856316
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
По ссылке дело не в кладовщике или Васе пупкине. А корректном обновлении всего стека Приложения включая кэши.

- почему нужно перезапускать томкат, если у него есть веб-админка для управления деплоем и перезапуском приложений?
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856371
Фотография grasoff.net
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
описать парсинг, например, груви-скриптами.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856580
Фотография schwa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabЯ вот думаю, может можно .class файлы грузить как-то динамически..
Да. Можно перезагружать классы. Но нужно быть уверенным, что после перезагрузки, загруженные ранее классы удалятся GC, а то иначе приложение когда-нибудь упадет с OutOfMemory.
пример
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856880
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabДопустим у меня есть некоторое веб приложение, в котором есть ряд классов, которые часто нужно исправлять. В этих класса собственно реализован парсеры разных веб страниц.
Ошибка в архитектуре. Если страниц много, то должен быть какой-то обобщенный механизм разбора сайтов. Например, с помощью xpath или регулярных выражений. И заниматься такими штуками должны не программисты, а более дешевый персонал.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37856886
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabУ меня должен постоянно быть запущен сервер. На время передеплоя, кто не успел дополучить ответ с сервера, тот получит ошибку, а кто захочет обратится к серверу то тоже получит ошибку.
Вторая ошибка в архитектуре. Модуль сбора (fetcher) и UI должны быть разными приложениями.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857196
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я думал по поводу обобщенного механизма парсинга. И по поводу скриптов думал. Но сайтов очень много и на некоторых чтоб вынуть нужное приходится изрядно извратится! Иногда достаточно просто распарсить по тэгам страничку и собрать данные. Иногда попадаются более толковые странички, где заложен готовый json с нужной мне информацией (позаботились писатели сайта). Иногда приходится яваскрипт парсить на страничке, чтоб выдрать нужную информацию. Иногда есть АПИ и туда надо перейти, чтоб получить опять таки либо json либо xml, который распарсить по элементам. Иногда всё в куче на одной страничке и приходится извратится чертика, чтоб достать что-то. Нет общего принципа. Вот например на некоторых часть информации достаю разбирая тэги, другую часть достаю разбирая яваскрипт и ещё некоторую часть достаю выполняя в цикле запросы дополнительно и получая респонсы с нужной информацией. Как это описать всё в скриптах я не представляю даже. В коде то не сразу опишешь... изьебнуться приходится изрядно и под отладчиком потом доводить до ума если где не работает по непонятной причине. А причины бывают как json кривой пришел или ещё х.з. ньюансов много.

Наверно в перезагрузке классов выход из положения.

Реализовано так. Есть массив с названиями классов. Посути они все загружаются в массип при пуске приложения. Потом когда делается запрос, то находим в массиве нужный класс и клонируем его и уже в клоне выполняем методы парсинга. Вот я и подумал, что может сделать методы выгрузки из массива и догрузки в массив. Ну и чтоб из памяти выгружать можно было... В общем пока не знаю как правильно делать.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857205
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колекция обьектов(классов парсеров), а не массив. По старой привычке массивами называю.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857226
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabКак это описать всё в скриптах я не представляю даже. В коде то не сразу опишешь... изьебнуться приходится изрядно и под отладчиком потом доводить до ума если где не работает по непонятной причине.
groovy также функционален, как и Java.

А еще сайты имеют свойство переодически обновлятся. По мелкому или по крупному. Менять разметку, логику работы и т.п.
Вам нужны механизмы, которые будут отслеживать проблему "поплохевших" сайтов.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857275
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
я не очень понял Цель веб-приложения по ТЗ.
Но, если ты парсишь внешние рессурсы, не в Системе. То эту область нельзя автоматизировать.
Всё равно будет N класов под N сайтов-урлов.
Что у тебя столько классов, что в памяти не вмещаются?

Не может быть. Памяти под данные не хватает, а под методы - не может быть.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857318
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvА еще сайты имеют свойство переодически обновлятся. По мелкому или по крупному. Менять разметку, логику работы и т.п.
Вам нужны механизмы, которые будут отслеживать проблему "поплохевших" сайтов.
Так и есть! Иногда изменится название класса в HTML и уже не работает. Достаточно зайти, взглянуть на HTML и поправить одну строчку кода и начинает работать. А ради этого нужно релизить заново целое приложение.
Не кашерно как-то.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857326
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Что у тебя столько классов, что в памяти не вмещаются?

Не может быть. Памяти под данные не хватает, а под методы - не может быть.

Не в этом дело. Дело в предыдущем посте.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857359
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabPetro123Что у тебя столько классов, что в памяти не вмещаются?
Не может быть. Памяти под данные не хватает, а под методы - не может быть.
Не в этом дело. Дело в предыдущем посте.
теперь понял, но это тебе не поможет.
Не автоматизируется = Нельзя разнести статику методов и динамику изменений шаблона сайта.
Либо экономия на спичках.

Пишу IMHO - плюнь.
Удачи!
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857373
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabLeonidvА еще сайты имеют свойство переодически обновлятся. По мелкому или по крупному. Менять разметку, логику работы и т.п.
Вам нужны механизмы, которые будут отслеживать проблему "поплохевших" сайтов.
Так и есть! Иногда изменится название класса в HTML и уже не работает. Достаточно зайти, взглянуть на HTML и поправить одну строчку кода и начинает работать. А ради этого нужно релизить заново целое приложение.
Не кашерно как-то.

У нас не обработка сайтов, но есть система правил, которая регулярно меняется, и более того правила могут быть доавлены изменены в рантайме - так вот мы прикрутили BeanShell интерпретатор, пару общих функций, заимплементили контекст, в который можно пихать мапу с параметрами, сделали таблички для правил, в которых содержится код самих правил, ну и пару экранов к нему - теперь если нужно поправить правило - просто лезешь через админ страницу - меняешь че надо без всяких перезапусков
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857396
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник,
много ушло времени?
...Интерпретатор или DSL прикручивать надо. Только фактически это почти такой же код получается.
В общем, КПД - вещь сложная. От проекта и денег зависит.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857490
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123забыл ник,
много ушло времени?
...Интерпретатор или DSL прикручивать надо. Только фактически это почти такой же код получается.
В общем, КПД - вещь сложная. От проекта и денег зависит.
На правилах у нас весь проект держится, они были но в немного другом виде, на самом деле на скрины как всегда больше всего времени ушло, а так прикрутить - биншелл - день, настроить какие-то переменные в контексте и кастомные функции - еще день, структура базы - день, ну так по мелочи еще день - а на скрины неделя где-то
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857525
rrrrrrrr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужен hot redeploy отдельных модулей, то нужно смотреть в сторону osgi.

Самому написать тоже можно в принципе, например, грузить каждый такой плагин-класс в отдельном класслоадере. Но там много тонкостей при взаимодействии классов из разных класслоадеров.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37857585
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabА можно ли както реализовать типа модули для веб приложения? Чтоб не перезапускать целиком томкэт.Выносите ваше "часто меняющееся" в отдельное приложение перестартовываете (только один) контекст.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37859642
32338
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,

я конечно дико извиняюсь, так как в вебе я не так давно да и в java тоже
но есть одна ну просто хорошая технология на которой построен Eclipse и NetBeans
это технология OSGi думаю вам она как и мне нужна, тока я в ней еще не шарю =)


http://samolisov.blogspot.com/2010/08/glassfish-osgi-equinox.html

вообщем принцип прост, построить модульное приложение вот и все, модули можно динамически
подключать, как раз без перезагрузки всего что так не хочется перезагружать....
вообщем гугл и OSGi но это все равно что написать ваше APP с нуля...
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37862034
Мужик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1 за OSGi. Посмотрите, например, как сделана загрузка плагинов в продуктах Atlassian (Confluence, JIRA, etc.).
Только текущий проект переписывать на OSGi, если он написан не профессионалами (по моему опыту большинство Java-программистов вообще не подозревают о наличии Classloader'ов и даже знать о них не хотят, когда пишут код), -- проще застрелиться, столько повылазит того, на что можно было раньше не обращать внимания, что помрете тестировать.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37862066
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123То эту область нельзя автоматизировать.
Зависит от задачи. Иногда можно (и в этом случае нужно) делать автоматизацию.
...
Рейтинг: 0 / 0
Модули для WEB приложения. (как реализовать?)
    #37862148
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvPetro123То эту область нельзя автоматизировать.
Зависит от задачи. Иногда можно (и в этом случае нужно) делать автоматизацию.
у тебя какое образование?
В одном предложении 3 взаимоисключающих обоснования.
Т.е. фраза ни о чём.
Разговаривай с аффтаром, а не со мной.
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Модули для WEB приложения. (как реализовать?)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]