5

我有一个相当复杂的 OSGi 应用程序,它使用声明式服务并被设计为部署在 Equinox 中。现在的任务是使这个应用程序可以在 WAS 8 中部署。

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

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

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

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

另一个问题是:如何获取自己的应用程序在 WAS 8 下部署的 OSGi 控制台?我想控制我的捆绑包,但似乎无法从管理控制台中做到这一点。

更新

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

4

1 回答 1

2

要回答您问题的 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

于 2013-10-24T21:34:23.250 回答