OSGi - Насколько сформировавшийся эта технология?

Моим фаворитом является ведущее устройство.. xp_cmdshell. Это позволяет Вам командам выполнения от командной строки на сервере, и посмотрите вывод. Чрезвычайно полезно, если Вы не можете войти в систему к серверу, но необходимо получить информацию или управлять ею так или иначе.

, Например, для списка папок на C: диск сервера, куда SQL Server работает.

  • ведущее устройство.. xp_cmdshell 'dir c:\'

можно запустить и остановить сервисы, также.

  • ведущее устройство.. xp_cmdshell 'запрос кв/см "Мой Сервис"'

  • ведущее устройство.. xp_cmdshell 'остановка кв/см "Мой Сервис"'

  • ведущее устройство.. xp_cmdshell 'кв/см запускают "Мой Сервис"',

Это очень мощно, но угроза безопасности, также. Многие люди отключают его, потому что это могло легко использоваться, делают плохие вещи на сервере. Но, если у Вас есть доступ к нему, это может быть чрезвычайно полезно.

14
задан Community 23 May 2017 в 11:55
поделиться

4 ответа

Хотя OSGI может быть решением, это может быть немного излишним (и, как указал Божо, вам понадобится контейнер с поддержкой OSGI). Возможно, посмотрите Как разделить ресурсы между проектами в Maven , чтобы узнать о других вариантах:

В этом блоге я покажу, как сделать второй вариант, поскольку, на мой взгляд, это в настоящее время является наиболее стабильным и гибкий. В будущем попробую плагин maven-remote-resources и напишите учебник.

РЕДАКТИРОВАТЬ: Чтобы ответить на комментарий от OP. Да , идея состоит в том, чтобы создать сборку совместно используемых веб-ресурсов и использовать maven-dependency-plugin для извлечения и распаковки сборки в проектах «потребитель-ресурс». Все это объяснено и подробно описано в упомянутом выше сообщении в блоге. Дайте мне знать, если в нем что-то неясно.

7
ответ дан 1 December 2019 в 13:47
поделиться

OSGi используется в Eclipse, GlassFish, ServiceMix (и других), которые являются зрелыми программными продуктами. Однако они очень специфичны по своей природе, и мое личное мнение таково, что OSGi не совсем подходит для проектов общего типа. Насколько я знаю (кто-нибудь поправит меня, если есть новости в этой области), если вы хотите использовать OSGi с веб-приложениями, вам понадобится контейнер сервлетов, связанный с OSGi. Кроме того, размещение ресурсов (html, js, изображения) в пакетах OSGi может быть проблематичным.

6
ответ дан 1 December 2019 в 13:47
поделиться

OSGi - довольно зрелая технология - так устроены все плагины Eclipse. Однако эта технология еще не получила широкого распространения в области веб-приложений, потому что очень мало контейнеров сервлетов, поддерживающих ее.

Если вы хотите прочитать о ней, вам следует ознакомиться с Modular Java by Крейг Уэллс, так как он дает достаточно хорошее представление об OSGi по отношению к Spring Framework.

Что касается совместного использования ресурсов, вы можете изучить пакет EAR. Я успешно использовал это для развертывания нескольких файлов WAR с общим набором ресурсов (например, сжатая версия Dojo).

Например, EAR может выглядеть так:

 ear-file/proj1
 ear-file/proj2
 ear-file/config
 ear-file/lib
 ear-file/resources
 ear-file/META-INF
 ear-file/APP-INF

Вы также можете прочитать поток .war против файла .ear из предыдущего сообщения stackoverflow.

3
ответ дан 1 December 2019 в 13:47
поделиться

Я не слишком хорошо знаком со Struts (или Spring MVC, для это важно), но вы можете посмотреть SpringSource dm Server . Он основан на Equinox, контейнере OSGi, используемом Eclipse, и связанном пакете Apache Tomcat (а также на фреймворке Spring).

На сервере SpringSource каждый военный файл развертывается более или менее традиционно, но может получить доступ к ресурсам (классам, службам и т. д.) через обычные механизмы OSGi. Эти механизмы основаны на загрузчиках классов пакета OSGi, что может быть проблематичным при совместном использовании файловых ресурсов, таких как jsps, html, css и т. Д. Это могло бы сработать, если бы у вас было что-то похожее на DefaultServlet, которое рендерило вещи из загрузчика классов, а не из файловой системы. (Или, черт возьми, я мог бы сделать это более сложным, чем мне нужно.)

С другой стороны, вы можете развернуть все как независимые веб-приложения и сшить все вместе на стороне клиента.

Первый ответ до вопрос о модульных веб-приложениях выглядит действительно интересным, хотя и не применим напрямую к серверу SpringSource, поскольку он не предоставляет OSGi HttpService. Я считаю, что недавний OSGi 4.

1
ответ дан 1 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: