powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Система плагинов в веб приложении
9 сообщений из 9, страница 1 из 1
Система плагинов в веб приложении
    #38637171
mfaustin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, я сейчас занимаюсь разработкой веб приложения и мне нужно реализовать простую систему плагинов. Функционал минимальный, пользователь через веб морду загружает jar файл, дальше в веб морде его запускает, также может остановить его и удалить. Использовать OSGi смысла нету потому система очень простая.

Само приложение это обычный веб сайт, активно используется экосистема Spring'а(Spring MVC, Spring Data JPA, ect). В самих плагинах будут Spring контейнеры, POJO и прочее, загружатся все это должно одним класлоадером. Плагины ориентированны именно на пользователя у которого нет доступа к серверу.

Вопрос собственно касается больше сервера приложений(у нас используется WildFly), в рамках десктоп приложения я бы взял и просто загружал jar'ники UrlClassLoader'ом из определенной директории, а вот как это будет выглядеть в рамках сервера приложений когда мы имеем монолитный war'ник?
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637176
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildFly этот EJB умеет? Можно EJB модулями. В старых версиях JBoss были ещё специальные модули JBoss Service. Не знаю, остались ещё в WildFly. Надо доку смотреть. Можно просто взять Java Plug-in Framework и прикрутить к приложению.
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637183
mfaustin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конкретно как реализовать саму систему плагинов я знаю с этим проблем нету я немного не понимаю как будет происходить сохранение jar'ника и в какую директорию и как его загружать, так же UrlClassLoader'ом? Тоесть вот например пользователь через веб морду загружает на сервер плагин его нужно как то сохранить и потом загрузить класлоадером. Я просто до этого не сталкивался с веб приложения занимался больше декстопом и немного не понимаю как все это будет происходить в рамках сервера приложений, и как вообще подобное делается в рамках сервера приложений?
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637193
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mfaustinКонкретно как реализовать саму систему плагинов я знаю с этим проблем нету
Вы меня сейчас куда послали?

mfaustinя немного не понимаю как будет происходить сохранение jar'ника и в какую директорию и как его загружать
Точно так же как любой другой бинарник в web приложении. Либо в базу. Либо в файловую систему. Если вопрос только в этом, то наверное его и стоило задать?

mfaustinтак же UrlClassLoader'ом?
В зависимости от того где хранить jar-ник.

mfaustinТоесть вот например пользователь через веб морду загружает на сервер плагин его нужно как то сохранить и потом загрузить класлоадером.
Первый вопрос про плагины. Теперь вопроса про плагины нет, загружаем класслоадером. Ну, ок.

mfaustinЯ просто до этого не сталкивался с веб приложения занимался больше декстопом и немного не понимаю как все это будет происходить в рамках сервера приложений, и как вообще подобное делается в рамках сервера приложений?
Даю подсказку. Сервер приложений реализован на JSE. war модуль загружается своим отдельным класслоадером. Его, вероятно, нужно будет сделать родительским для всех ваших новых загрузчиков. Но зачем я это пишу? Вы же и так прекрасно знаете.
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637195
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mfaustin,

ServletContext.TEMPDIR чем-то не устраивает?
А как Вы собираетесь разруливать ситуацию, когда два пользователя захотят загрузить один и тот же класс, но разных версий?
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637206
mfaustin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Извините я немного не так выразился. А не подскажите как называется war класслоадер?

Сергей Арсеньев,

Поправка, пользователь с правами администратора)
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637209
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mfaustinИзвините я немного не так выразился. А не подскажите как называется war класслоадер?

Какая разница как он называется??? Каждый сервер его по-своему реализует.
http://tomcat.apache.org/tomcat-6.0-doc/class-loader-howto.html

mfaustinПоправка, пользователь с правами администратора)
Сергей намекает, на то что без OSGi в кустарной реализации вас ожидает много интересных сюрпризов. Таких как ClassCastException (возможно его вариации вызванные той же причиной) и утечка памяти. Или вы про эти нюансы динамической загрузки классов тоже знаете?

И, кстати, такими вопросами уже лет 7 как никто не задается потому что вот:
http://docs.oracle.com/javase/6/docs/api/javax/script/ScriptEngineManager.html
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637221
mfaustin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Про нюансы динамической загрузки в курсе. Ага оно и видно все пишут на js))) странно правда почему появился GWT...
Вопрос решил, тему можно закрыть.
...
Рейтинг: 0 / 0
Система плагинов в веб приложении
    #38637224
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mfaustinАга оно и видно все пишут на js
Там разные языка поддерживаются.

mfaustinстранно правда почему появился GWT
При чем здесь GWT?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Система плагинов в веб приложении
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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