Apache Felix + Java EE + OSGi Web-App

问题描述:

我正在用一些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可以帮助解决这个问题。

你要做的是在OSGi内部执行一些类似于传统WAR文件的东西? 技术上你需要做的是实际创建一个'wab',一个Web应用程序包。 要做到这一点,您可以像创建任何其他包一样使用maven-bundle-plugin,但要指定它是“wab”(请参阅​​其他地方)。

然后,您需要将它部署到felix中,使其使用'servlet桥'。你可以用香草费利克斯做到这一点,但这并不容易。

尝试Apache Karaf。 Karaf是Felix的包装,它提供了安装实现“特征”的库集合的完整方法。 你需要的功能是“战争”功能,该功能安装各种事情,包括码头等

所以在karaf命令行你会怎么做“的特点安装战争” 那么你的WAB捆绑拖放到部署文件夹和交叉你的手指。

更好的是,您可以使用karaf-maven插件来创建您自己的'features.xml'文件,以确定您的软件包使用的其他功能和依赖项,然后将该feature.xml文件放到部署文件夹中Karaf。

如果您对此有任何具体问题,请告诉我。我的例子只是它所有,但你是一个相当陡峭的学习曲线恐怕:(

检查Wisdom Framework
该文档是不是很好,但它是一个不错的框架。
我推荐并将用于我的下一个项目。