Доступен ли Struts 2 в виде OSGi-пакета? - PullRequest
4 голосов
/ 21 мая 2009

У меня есть серверное приложение, которое состоит из нескольких пакетов OSGi, некоторые мои, некоторые сторонние. Один из комплектов предоставляет веб-интерфейс с использованием Struts. Необходимые библиотеки Struts находятся внутри веб-интерфейса.

Теперь я хочу добавить второй пакет, который предоставляет другой веб-интерфейс с разными зависимостями и совершенно другим вариантом использования. Я также хочу использовать Struts для этого пакета, но я не хочу помещать одни и те же библиотеки в два пакета.

С OSGi не должно быть никаких проблем, чтобы отделить библиотеки Struts в их собственной связке и использовать ее из обеих моих связок. Однако я не смог найти Struts, упакованный таким образом.

Некоторый быстрый поиск в Google и просмотр домашней страницы Struts ничего не дали. Я мог бы найти плагин для Struts для запуска контейнера OSGi внутри Struts, но это не то, что я хочу.

Ответы [ 5 ]

5 голосов
/ 25 мая 2009

Посмотрите на текущие комплекты распорок на http://repo2.maven.org/maven2/org/apache/struts/struts2-core/2.1.6/.

Если вы скачаете, например, struts2-core-2.1.6.jar, распакуйте его и посмотрите на META-INF / MANIFEST.MF, и вы увидите, что он содержит заголовки OSGI (Import-Package, Export-Package). , Bundle - *):

C:\TMP\META-INF>more MANIFEST.MF
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: 1.5.0_10 (Sun Microsystems Inc.)
Built-By: musachyb
Build-Jdk: 1.5.0_10
Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
Import-Package: com.opensymphony.xwork2;version="2.1",com.opensymphon
 <SNIP>
Bnd-LastModified: 1231185746365
Export-Package: org.apache.struts2.views.xslt;uses:="javax.servlet.ht
Bundle-Version: 2.1.6
 <SNIP>
Bundle-Description: Apache Struts 2
Bundle-Name: Struts 2 Core
Bundle-DocURL: http://www.apache.org
Bundle-ManifestVersion: 2
Bundle-Vendor: Apache Software Foundation
Bundle-SymbolicName: org.apache.struts.struts2-core
Tool: Bnd-0.0.255

Не знаю, как вы будете использовать их в приложении OSGi - но теоретически вы можете хотя бы ссылаться на них и делать "вещи" !! :)

0 голосов
/ 05 августа 2009

Используя Maven, очень легко создать пакет OSGi из любой библиотеки. Поскольку Struts уже доступен в виде OSGi-Bundle в центральном репозитории Maven (см. Принятый ответ), я поместил это решение в отдельный вопрос & ответ пост.

0 голосов
/ 25 мая 2009

взгляните на эти ссылки, надеюсь, вы найдете их немного полезными Веб-блог Дона Брауна

и прочитайте эту статью, это может быть полезно Java-лобби: Модулирование существующих веб-приложений с OSGi

ну, я думаю, тебе придётся сделать задачу обёртывания самостоятельно.

0 голосов
/ 24 мая 2009

Struts - это платформа для контейнера сервлетов (распределенная архитектура компонентов). oSGI также является распределенной компонентной архитектурой.

Я думаю, что вам лучше всего взглянуть на служба oscar http и, основываясь на коде оскара, посмотреть, как они отобразили HttpService, контекст и т. Д. Oscar в контейнер сервлета Jetty. А затем перенесите каркас стоек на верхнюю часть встроенного причала.

0 голосов
/ 24 мая 2009

Это то, что вы ищете ?: http://cwiki.apache.org/S2PLUGINS/osgi-plugin.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...