【问题标题】:How to integrate a SpringSource dm Server into another OSGi-based application server?如何将 SpringSource dm 服务器集成到另一个基于 OSGi 的应用程序服务器中?
【发布时间】:2010-09-14 17:39:17
【问题描述】:
我真的很想使用 SpringSource dm Server,但是我们的客户要求我们在他们的应用服务器 (Websphere) 上运行我们的应用程序。有没有办法将 SpringSource dm Server 与其他应用程序服务器集成?至少 dm Server 是基于 OSGi 构建的,许多其他应用服务器(包括 Websphere)也是基于 OSGi 的。是否可以将 SpringSource dm 服务器作为 websphere 组件运行?
【问题讨论】:
标签:
osgi
springsource
spring-dm
【解决方案1】:
SpringSource dm Server 基于 Eclipse Equinox OSGi 框架(不应与包含在 dm Server 中的 Spring DM 技术混淆,后者可以在 Equinox、Apache Felix 和 Knopflerfish 上运行)。
但是,将 dm Server 嵌入到基于 Equinox 的另一个应用程序服务器(例如 WebSphere Application Server)中将是一项不平凡的工作。有必要让这两个产品使用相同版本的 Equinox,他们目前没有,然后修改 dm Server 以支持嵌入到服务器中(例如,与主机服务器的应用程序调用机制、线程池和类加载集成)方案)。
如果您认为这种支持很重要,请针对 dm 服务器raise a requirement(需要简单注册)。
【解决方案2】:
Spring DM 部署在 Knoplerfish OSGi 实现上。
Websphere 部署在 Equinox OSGi 实现上。
所以问题变成了——这两者可以互换吗?它们都支持 R4,所以我会说,是的,它们是。
下一个问题是检查依赖关系,尤其是关于 HttpServices 之类的东西。
我会说这没问题,但我认为最终的证明是尝试部署它。最简单的方法是将捆绑包放入 Websphere 部署中。您将需要您的捆绑包以及您正在使用的任何弹簧捆绑包。
【解决方案3】:
我也对这个话题感兴趣。看待这个问题的另一种方式是,您需要一个可在 Spring dm 服务器和传统应用服务器(Websphere、weblogic、JBoss...)中部署的应用程序。
OSGi 容器可嵌入到非 OSGi 应用程序中,因此理论上可以将应用程序部署到 Spring dm 服务器和同一个应用程序 + OSGi 容器到传统应用程序服务器。
现在,像往常一样,魔鬼在细节中,包括 Web 开发和在外部应用服务器和 OSGi 容器之间桥接 servlet 等主题。