Моим фаворитом является ведущее устройство.. xp_cmdshell. Это позволяет Вам командам выполнения от командной строки на сервере, и посмотрите вывод. Чрезвычайно полезно, если Вы не можете войти в систему к серверу, но необходимо получить информацию или управлять ею так или иначе.
, Например, для списка папок на C: диск сервера, куда SQL Server работает.
можно запустить и остановить сервисы, также.
ведущее устройство.. xp_cmdshell 'запрос кв/см "Мой Сервис"'
ведущее устройство.. xp_cmdshell 'остановка кв/см "Мой Сервис"'
ведущее устройство.. xp_cmdshell 'кв/см запускают "Мой Сервис"',
Это очень мощно, но угроза безопасности, также. Многие люди отключают его, потому что это могло легко использоваться, делают плохие вещи на сервере. Но, если у Вас есть доступ к нему, это может быть чрезвычайно полезно.
Хотя OSGI может быть решением, это может быть немного излишним (и, как указал Божо, вам понадобится контейнер с поддержкой OSGI). Возможно, посмотрите Как разделить ресурсы между проектами в Maven , чтобы узнать о других вариантах:
- Вырежьте и вставьте их.
- Используйте Assembly и Dependency плагины
- Используйте maven-remote-resources-plugin
В этом блоге я покажу, как сделать второй вариант, поскольку, на мой взгляд, это в настоящее время является наиболее стабильным и гибкий. В будущем попробую плагин maven-remote-resources и напишите учебник.
РЕДАКТИРОВАТЬ: Чтобы ответить на комментарий от OP. Да , идея состоит в том, чтобы создать сборку совместно используемых веб-ресурсов и использовать maven-dependency-plugin для извлечения и распаковки сборки в проектах «потребитель-ресурс». Все это объяснено и подробно описано в упомянутом выше сообщении в блоге. Дайте мне знать, если в нем что-то неясно.
OSGi используется в Eclipse, GlassFish, ServiceMix (и других), которые являются зрелыми программными продуктами. Однако они очень специфичны по своей природе, и мое личное мнение таково, что OSGi не совсем подходит для проектов общего типа. Насколько я знаю (кто-нибудь поправит меня, если есть новости в этой области), если вы хотите использовать OSGi с веб-приложениями, вам понадобится контейнер сервлетов, связанный с OSGi. Кроме того, размещение ресурсов (html, js, изображения) в пакетах OSGi может быть проблематичным.
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.
Я не слишком хорошо знаком со Struts (или Spring MVC, для это важно), но вы можете посмотреть SpringSource dm Server . Он основан на Equinox, контейнере OSGi, используемом Eclipse, и связанном пакете Apache Tomcat (а также на фреймворке Spring).
На сервере SpringSource каждый военный файл развертывается более или менее традиционно, но может получить доступ к ресурсам (классам, службам и т. д.) через обычные механизмы OSGi. Эти механизмы основаны на загрузчиках классов пакета OSGi, что может быть проблематичным при совместном использовании файловых ресурсов, таких как jsps, html, css и т. Д. Это могло бы сработать, если бы у вас было что-то похожее на DefaultServlet, которое рендерило вещи из загрузчика классов, а не из файловой системы. (Или, черт возьми, я мог бы сделать это более сложным, чем мне нужно.)
С другой стороны, вы можете развернуть все как независимые веб-приложения и сшить все вместе на стороне клиента.
Первый ответ до вопрос о модульных веб-приложениях выглядит действительно интересным, хотя и не применим напрямую к серверу SpringSource, поскольку он не предоставляет OSGi HttpService. Я считаю, что недавний OSGi 4.