2011-12-19 104 views
1

我是新的Web java編程。我想創建一個簡單的JSF模塊化應用程序。我發現了一個簡單的教程link如何用OSGI模塊創建一個簡單的WAR文件

但不幸的是我還有一些問題如何使用OSGI:

  1. 我可以建立在它的一些JSF頁面簡單OGI束和地點?如果不是通常的web應用程序開發。
  2. 你可以給我鏈接與示例如何我可以調用函數並將形式的WAR文件傳遞給OSGI模塊。

問候

回答

4

不爲JSF的答案明確(this可能),但對於一般的OSGi Web的應用程序,如果你正在使用maven看看Pax-Web

上手Pax-Web最簡單的方法可能是使用Karaf,然後運行命令features:install war

一旦WAR(或WAB - Web應用程序包)部署,你就可以使用 OSGi的BundleContext的在Servlet的初始化屬性,如:

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兼容的Web應用程序容器,您需要添加:

Web-ContextPath: context-root-name-here 

有一個在specifications更多信息,請參閱企業或PDF文件彙編爲v4.2

編輯:對於在JBoss中進行部署,您最可能要使用WAB支持,請參閱企業4.2規範的第128節。另外這可能有所幫助:http://community.jboss.org/message/619443 有趣的是JBoss AS7使用的是pax-web,因此這方面的文檔也應該在很大程度上適用。

+0

事實證明,我將使用EAR打包,因爲我需要使用資源適配器。上述代碼是否與EAR包兼容? – 2011-12-29 09:42:28

+0

我用一些JBoss特定的信息編輯了我的答案,特別是你要創建一個WAB(還爲maven-bundle-plugin添加了一個鏈接) – earcam 2011-12-29 11:10:26

+0

還有一個問題:我創建了一個簡單的OSGI包,它使查詢數據庫使用JBoss 7.1.0的數據源。當我嘗試部署它時,JBoss 7.1.0讓我感到恐懼。這可能是JBoss中的一個bug嗎? – 2011-12-29 13:13:06

相關問題