Можете ли вы использовать пользовательские компоненты JSF в разных пакетах OSGi?

StackOverflow https://stackoverflow.com/questions/203629

  •  03-07-2019
  •  | 
  •  

Вопрос

Кто-нибудь использовал OSGi и JSF вместе?

Я спрашиваю, потому что JSF использует магию загрузчика классов для поиска пользовательских компонентов.Из учебника (выделено мной):

Этот файл конфигурации в конечном итоге будет мета-инф/faces-config.xml в файле .jar, который представляет этот компонент. JSF будет искать такое имя файла в каждом из файлов .jar, которые загружаются во время выполнения (В каталоге Web-Inf/Lib для .war файлов) и используйте каждого из них в его конфигурации.Таким образом, несколько компонентов .JAR -файлов могут быть объединены в одно веб -приложение, и все компоненты, описанные в каждом .JAR, будут доступны для приложения.

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

Кто-нибудь делал что-нибудь подобное?

Это было полезно?

Решение

Это возможно следующим образом:

  • Ваш веб-пакет osgi должен иметь «Require-Bundle» в MANIFEST.MF, указывающий на пакет, содержащий компоненты.
  • В вашем jar-файле компонента должен быть Export-Package, содержащий META-INF и подпакеты META-INF, где есть любой файл, связанный с JSF (и, конечно, стандартные пакеты компонента).Например:Экспортный пакет:МЕТА-ИНФ,МЕТА-ИНФ.ресурсы...

Если вы используете плагин maven-bundle, вы должны использовать апостроф и равно для экспорта META-INF и подпакетов.Например:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

В JSF Spec 2.2 могут быть части, касающиеся взаимоотношений JSF-OSGI.Чтобы увидеть прогресс, см. http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942

Другие советы

Я не уверен, что это точно решает вашу проблему, но я нашел эту тему Весна и осги интересно, особенно это конкретный ответ где зависимости и путь к классам включены в MANIFEST.MF.

Эта тема также приводит к обновлению этого для руководство по динамическим модулям Spring (DM) для сервисных платформ OSGi™ что тоже может представлять интерес.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top