Legacy Spring 2.5.6在WLS和Spring中迁移到Spring 3.x或4.x. Java 8

时间:2017-11-29 19:14:38

标签: java spring weblogic12c spring-jdbc

在交付传统的Spring 2.5.6应用程序(部署在WLS 12.1,java 7中)之后,我被要求将其迁移到WLS 12.2和java 8.我正在尝试使用源代码重新构建应用程序目标是“1.8”。它构建正常,但在部署/测试时,我立刻就遇到了一个问题,Spring 2.5.6似乎无法在这个新环境中的类路径上找到应用程序上下文文件:

  

org.springframework.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathPatchingResourcePatternResolver.java:346)   |已解决的位置模式[classpath *:context * .xml]到resources []

找不到资源。实际上,甚至没有搜索类路径目录树。我已经检查过以确保文件存在且类路径在WLS日志文件中看起来正确。所有这些在java 7 / WLS 12.1中都很有用,但在java 8 / WLS 12.2中失败了。

我的猜测是Spring 2.5.6非常古老,以至于它在java 8环境中可能无法正常工作。有关如何轻松迁移到Spring 3.x或4.x的任何建议没有做出任何(如果可能的话)源代码更改?

正在使用的弹簧片2.5.6:

  • SpringBeanAutoWiringInterceptor(覆盖getBeanFactory()使用 ClassPathXmlApplicationContext
  • Spring JDBC的SimpleJdbcDaoSupport
  • Spring Transaction注释(@Transactional

就是这样。不是很多Spring,但足以保证这个问题:在不进行任何(或许多)源代码更改的情况下,哪个Spring版本最容易迁移?或者有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我通过升级到Spring 4.1.9来实现这一点,它包含与Spring 2.5.6相同的类(尽管其中许多已被弃用)。

然而,请注意。在进行此更改时,我遇到了一个问题,即在文件系统上使用展开目录时,Spring 4不再从CLASSPATH中查找/加载上下文文件。

这个问题在这里解决了: ClassLoader.getResources returning an empty Enumeration on a Weblogic/Spring application