2015-02-11 68 views
1

我正在用一些Java EE功能構建OSGi應用程序。問題是我正在尋找一種方法來打包應用程序及其所有依賴項,以便用戶只執行jar文件並與osgi應用程序和依賴項一起執行OSGi框架。然後用戶只能訪問網絡瀏覽器並打開應用程序。Apache Felix + Java EE + OSGi Web-App

我發現的第一個問題是在OSGi框架(Apache Felix)中執行Java-EE應用程序來執行它。我應該將哪些依賴項導入Felix以啓用Java-EE應用程序?我曾嘗試一些其他的方法,如:

而且仍然沒有能夠得到一個簡單的Java EE應用程序與JSF,工作在OSGi下。 OSGi和Java-EE之間存在着一種依賴性惡夢,只有Glassfish才能完成。

有沒有人知道如何讓一個簡單的Java-EE應用程序在Apache Felix中工作?一旦我們將這個工作嵌入到一個Jar中,可能不會那麼複雜,並且Apache Maven Assembly Plugin可以幫助解決這個問題。

回答

1

你要做的是在OSGi內部執行一些類似於傳統WAR文件的東西? 技術上你需要做的是實際創建一個'wab',一個Web應用程序包。 要做到這一點,您可以像創建任何其他包一樣使用maven-bundle-plugin,但要指定它是「wab」(請參閱​​其他地方)。

然後,您需要將它部署到felix中,使其使用'servlet橋'。你可以用香草費利克斯做到這一點,但這並不容易。

嘗試Apache Karaf。 Karaf是Felix的包裝,它提供了安裝實現「特徵」的庫集合的完整方法。 你需要的功能是「戰爭」功能,該功能安裝各種事情,包括碼頭等

所以在karaf命令行你會怎麼做「的特點安裝戰爭」 那麼你的WAB捆綁拖放到部署文件夾和交叉你的手指。

更好的是,您可以使用karaf-maven插件來創建您自己的'features.xml'文件,以確定您的軟件包使用的其他功能和依賴項,然後將該feature.xml文件放到部署文件夾中Karaf。

如果您對此有任何具體問題,請告訴我。我的例子只是它所有,但你是一個相當陡峭的學習曲線恐怕:(

1

檢查Wisdom Framework
該文檔是不是很好,但它是一個不錯的框架。
我推薦並將用於我的下一個項目。