升级Spring到3.1整合SpringOSGi遇到的问题
项目新版本中准备引入Cache,而Spring从3.1开始加入了对cache的支持,所以准备将Spring从3.0升级到3.1。但升级过程中遇到了不少问题.
?
项目中用到了以下Spring框架:
Spring 3.0.0.RELEASE?
SpringMVC 3.0.0.RELEASE
SpringOSGI 2.0.0.M1
SpringSecurity?3.0.0.RELEASE
升级版本搭配一:
Spring用的是http://ebr.springsource.com/repository/app/中的版本,Maven描述结构如下,以core为例:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.1.0.RELEASE</version> </dependency>
?Spring 3.1.0.RELEASE?
SpringMVC 3.1.0.RELEASE
SpringOSGI 2.0.0.M1
SpringSecurity?3.1.0.RELEASE
问题:
SpringOSGI 2.0.0.M1和Spring 3.1.0.RELEASE不兼容,提示在SpringOSGI中依赖的一些类方法,在Spring 3.1.0.RELEASE中找不到(这些方法在Spring 3.0.0.RELEASE是有的)。
升级版本搭配三:
没办法,只能升级SpringOSGi了。但升级SpringOSGi就悲剧了,由于Spring自己不想管SpringOSGi这个烂东西了,把它丢给了Eclipse,改了个名字叫Gemini Blueprint。Eclipse拿了也不想管,搞了几年才出了个1.0版本,之后就没什么动静了,更要命的是还将SpringOSGi中的一些东西砍掉了。原来spring-osgi-web在Gemini Blueprint中找不到了。这可要命令,之前Spring OSGi + Spring MVC的整合这个是不能少的,现在又要找Gemini Blueprint和Spring MVC的整合方法,真是要命啊。
Spring 3.1.0.RELEASE?
SpringMVC 3.1.0.RELEASE
Gemini Blueprint??1.0.0.RELEASE
SpringSecurity?3.1.0.RELEASE
问题:
结果可想而知。目前还没找到Gemini Blueprint和Spring MVC的整合方法。
?
升级版本搭配四:
不进就退吧,退一步试试,将SpringOSGi降为1.2.1。
?
?Spring 3.1.0.RELEASE?
?
SpringMVC 3.1.0.RELEASE
SpringOSGi 1.2.1
SpringSecurity?3.1.0.RELEASE
初步测试SpringOSGi1.2.1与Spring3.1看来没有问题,虽然还有一些其它问题,接下来慢慢解决。
?