我是新的Web java編程。我想創建一個簡單的JSF模塊化應用程序。我發現了一個簡單的教程link如何用OSGI模塊創建一個簡單的WAR文件
但不幸的是我還有一些問題如何使用OSGI:
- 我可以建立在它的一些JSF頁面簡單OGI束和地點?如果不是通常的web應用程序開發。
- 你可以給我鏈接與示例如何我可以調用函數並將形式的WAR文件傳遞給OSGI模塊。
問候
我是新的Web java編程。我想創建一個簡單的JSF模塊化應用程序。我發現了一個簡單的教程link如何用OSGI模塊創建一個簡單的WAR文件
但不幸的是我還有一些問題如何使用OSGI:
問候
不爲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,因此這方面的文檔也應該在很大程度上適用。
事實證明,我將使用EAR打包,因爲我需要使用資源適配器。上述代碼是否與EAR包兼容? – 2011-12-29 09:42:28
我用一些JBoss特定的信息編輯了我的答案,特別是你要創建一個WAB(還爲maven-bundle-plugin添加了一個鏈接) – earcam 2011-12-29 11:10:26
還有一個問題:我創建了一個簡單的OSGI包,它使查詢數據庫使用JBoss 7.1.0的數據源。當我嘗試部署它時,JBoss 7.1.0讓我感到恐懼。這可能是JBoss中的一個bug嗎? – 2011-12-29 13:13:06