Struts 2.1.6 + Spring 3 + Hibernate 3到Java 8支持版本的最佳迁移策略

时间:2019-06-07 13:47:03

标签: spring hibernate java-8 struts2 migration

目前,我有一个基于框架 Struts 2.1.6 + Spring 3 + Hibernate 3 + JAVA 6 构建的Web应用程序,并在 上运行Tomcat 6 / JBoss 5 。它是具有 ant build 的非常老的应用程序,但是现在我们需要将其升级到 JAVA 8 EAP 7和Tomcat 9 服务器。

我做了以下步骤,但是需要更多的修改才能使其运行

  1. 首先升级JAVA 6 to 8-然后spring依赖项无法实例化
  2. 然后升级了Spring 3.x to latest 5.1.7.RELEASE-现在的休眠模板,由于*.hibernate5.*软件包更改之类的更改而全部失败,所有-进行了一些代码更改以解决该问题
  3. 升级了Hibernate 3.x to 5.4.2.Final-添加了一些不推荐使用的代码
  4. 升级了struts2-spring-plugin-2.1.6 to struts2-spring-plugin-2.5.20以支持新的春季版本
  5. 现在发布到 Tomcat 9 时,com.opensymphony.xwork2.util.classloader。*显示丢失。因此,我已经升级了xwork-core 2.1.2 to 2.3.37。但是之后,该错误更改为java.lang.NoSuchMethodError: com.opensymphony.xwork2.config.ConfigurationManager.addConfigurationProvider。然后我降级了版本xwork-core-2.3.3的版本,该函数上次存在该功能的版本已弃用,但随后出现了新错误,例如
Caused by: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=java.lang.String, name='struts.objectFactory.spring.enableAopSupport'] in public org.apache.struts2.spring.StrutsSpringObjectFactory(java.lang.String,java.lang.String,java.lang.String,java.lang.String,javax.servlet.ServletContext,java.lang.String,com.opensymphony.xwork2.inject.Container).
    at com.opensymphony.xwork2.inject.ContainerImpl.createParameterInjector(ContainerImpl.java:239)
    at com.opensymphony.xwork2.inject.ContainerImpl.getParametersInjectors(ContainerImpl.java:229)
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.constructParameterInjector(ContainerImpl.java:361)
    at com.opensymphony.xwork2.inject.ContainerImpl$ConstructorInjector.<init>(ContainerImpl.java:345)

现在,当进行搜索时,我也得到了升级struts 之类的解决方案,并且发现有版本2.5.x 。但是在此版本中,似乎删除了许多旧项,例如**dojo plugin**,所以我必须对现有代码进行更多的修改,这将需要很多工作日。

由于该应用程序已在运行中,因此我希望通过最少的代码更改即可获得较少的影响建议和解决方案。

0 个答案:

没有答案