2011-12-19 2 views
1

Я новичок в программировании веб-Java. Я хочу создать простое JSF-модульное приложение. Я нашел простой учебник linkКак создать простой файл WAR с OSGI-модулем

, но, к сожалению, я до сих пор есть некоторые вопросы, как использовать OSGI:

  1. Могу ли я создать простой ОГИ сверток и место в ней несколько страниц JSF? Если не так, как обычно разрабатываются веб-приложения.
  2. Можете ли вы дать мне ссылку с примером того, как я могу вызывать функции и передавать аргументы из файла WAR в модуль OSGI.

С уважением

ответ

4

Не ответ специально для JSF (this может быть), но для OSGi веб-приложений в целом взглянуть на Pax-Web, если вы используете maven.

Самый простой способ начать с Pax-Web, вероятно, использовать Karaf, а затем выполнить команду features:install war

После того, как WAR (или WAB - Web App Bundle) развертывается вы будете иметь возможность использовать OSGi-bundlecontext атрибут инициализации сервлета, например:

extends HttpServlet { 

BundleContext bundleContext; 

@Override 
public void init() throws ServletException 
{ 
    bundleContext = (BundleContext) getServletContext().getAttribute("osgi-bundlecontext"); 

} 

с помощью этого вы можете посмотреть услуги в реестре OSGi.

Вам нужно обратить внимание на Manifest.mf записи сверток в два, в частности:

Bundle-ClassPath: ./,WEB-INF/classes 
Webapp-Context: context-root-name-here 

или в OSGi совместимый контейнер WebApp вам нужно добавить:

Web-ContextPath: context-root-name-here 

Там больше информации в specifications см предприятия или КОМПЕНДИУМ PDF-файлы для v4.2

EDIT: для развертывания в JBoss вы, скорее всего, захотите использовать поддержку WAB, см. Раздел 128 спецификации предприятия 4.2. Также это может помочь: http://community.jboss.org/message/619443 Интересно, что JBoss AS7 использует pax-web, поэтому документация для этого также должна в значительной степени применяться.

+0

Оказалось, что я буду использовать EAR-упаковку, потому что мне нужно использовать адаптер ресурсов. Является ли выше код совместимым с EAR-пакетом? –

+0

Я отредактировал свой ответ с некоторой специфической информацией JBoss, в частности, вы захотите создать WAB (также добавили ссылку для maven-bundle-plugin) – earcam

+0

Еще один вопрос: я создал простой пакет OSGI, который делает запросы к базе данных используя источник данных JBoss 7.1.0. Когда я пытаюсь развернуть его, JBoss 7.1.0 бросает меня на аранжировку. Возможно ли, что это может быть ошибкой в ​​JBoss? –