如何在WAS 8.0中部署的自己的OSGi应用程序中启动特定的捆绑包?

时间:2013-10-24 17:04:36

标签: osgi equinox websphere-8 osgi-bundle declarative-services

我有一个非常复杂的OSGi应用程序,它使用Declarative Services并设计为部署在Equinox中。现在的任务是使该应用程序可以在WAS 8中部署。

第一次尝试是非常务实的:我已经部署了一个EAR,它已经启动了基本相同的Equinox,并且在一些WAS类加载策略调整之后它已经有效。

现在我想更进一步:摆脱Equinox运行时并在WAS 8中“本地”部署我的捆绑包。所以我编写了一个EBA,由我的业务包,它们的依赖项和Equinox DS运行时组成。 EBA作为资产部署并集成到BLA中。应用程序甚至已启动并运行,但组件未初始化。

重点是必须在自己的业务包之前启动equinox.ds (更新:不是必须,s。下面的讨论),以使DS完成其工作。但是如何告知捆绑包在部署的EBA中首先启动哪些捆绑包?我需要一些Equinox'config.ini文件的模拟。

我知道我可以使用原生支持的蓝图重新组合我的组件,但坦率地说,这是我想做的最后一件事。应该可以使Equinox DS工作,不应该吗?

另一个问题是:如何在WAS 8下部署自己的应用程序的OSGi控制台?我想控制我的捆绑包,但似乎没有办法从管理控制台执行此操作。

更新

感谢BJ和Neil(以下讨论),问题归结为“我如何在WAS 8.0中部署的自己的OSGi应用程序中启动特定的捆绑包?”

1 个答案:

答案 0 :(得分:1)

要回答问题的OSGi控制台部分,普通的OSGi控制台将无法工作,因为OSGi应用程序是在嵌套框架中管理的。 WebSphere提供了自己的控制台,可以导航嵌套的应用程序:http://pic.dhe.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=%2Fcom.ibm.websphere.osgi.nd.multiplatform.doc%2Ftopics%2Fta_admin_runtime_console.html