首页 > 解决方案 > 从 Spring DM 1.2 Spring 3 / KARAF 4.0.10 迁移到 Blueprint、Spring 5 和 KARAF 4.2.0

问题描述

我使用的是 KARAF 4.0.10,它安装了 spring 3.1.4 作为引导功能。我们将 spring 用于 web 模块 (spring-mvc) 和 spring-dm (spring-osgi-web)。

这是我的示例 web.xml。那是我的 web.xml Mvc Servlet

<servlet>
<servlet-name>javorai-api</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>org.springframework.osgi.web.context.support.osgibundlexmlwebapplicationcontext</param-value>
</init-param>

随着我们将 KARAF 升级到 4.2.0,spring 升级到了 5.0.4,spring-dm 不再支持它。现在已弃用。根据互联网搜索,我发现建议继续使用双子座蓝图作为 spring-dm 的替代品。我已经下载了gemini-blueprint/IO、Core 和extender 模块,方法是将其配置为maven 依赖项。

您能否指导一下 web.xml 中应该更改哪些内容以继续使用双子座蓝图作为 spring-dm 的替代品?

还有什么方法可以让它工作而不使用蓝图并直接在 web.xml 中引用 spring jar 文件

标签: osgiapache-karafarieseclipse-gemini

解决方案


如果你真的真的需要使用 Spring MVC,你可以使用ServerOsgiBundleXmlWebApplicationContext类,它会工作的。但是我必须警告你,在 osgi 环境下的 spring 是相当骇人听闻的,gemini 经常会弄乱捆绑包的生命周期并且它会破坏 aries-blueprint 捆绑包,除非你应用我为它创建的补丁。


推荐阅读