java - 将 Spring Webflow 从 1.0.6 升级到 2.3

标签 java spring spring-webflow

我们有一个基于 Spring 2.5.6 和 Webflow 2.3 的大型网络应用程序。现在我们要把Spring升级到3,Webflow升级到2.3。升级 Spring 非常轻松,但我们在使用其他库时遇到了一些问题。更改版本后,我们甚至无法使用 Maven 构建我们的应用程序。有很大的差异,例如:包名称、方法可见性修饰符甚至删除的方法,我们在 1.0.6 中使用这些。 您现在有一些指南,我们应该如何替换已更改的方法?我在 Spring 网站上找到了类似的东西,但它对我来说不是很有用。 也许有人这样做并且可以给我们一些提示? 感谢您的帮助:)

最佳答案

是的,这是可能的。仔细阅读该版本的 Spring 文档。您将需要使用 1.0.X 和 2.3.X 的引用文档,因为这会有所帮助。请特别注意升级指南建议的以下更改。

第 1 步。我编写了一个小工具来扩展下面的升级程序以递归地查找我们所有的网络流并将标签转换为 2.3.X 兼容:

java org.springframework.webflow.upgrade.WebFlowUpgrader flow-to-upgrade.xml

此类可在 WebFlow jar 源中找到。

第 2 步。我更新了架构:

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:webflow="http://www.springframework.org/schema/webflow-config"
       xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/webflow-config
           http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd">

第 3 步。确认 flowExecutor 标签已更新为 2.3 合规性:

<webflow:flow-executor id="flowExecutor" />

第 4 步。为基于静态路径的声明更新 flowRegistry 并确保标签合规性:

<webflow:flow-registry id="flowRegistry">
    <webflow:flow-location path="/WEB-INF/hotels/booking/booking.xml" />
</webflow:flow-registry>

第 5 步。更改 FlowController 类以匹配新的 Web Flow jar: 从 org.springframework.webflow.executor.mvc.FlowController 更改为现在的 org.springframework.webflow.mvc.servlet.FlowController

第 6 步。更新 FlowController bean 类引用。添加 WebFlow1FlowUrlHandler 确保 Web Flow 1.0.x 流程将运行并向后兼容新的 Web Flow 2 jar。

<bean name="/pos.htm" class="org.springframework.webflow.mvc.servlet.FlowController">
    <property name="flowExecutor" ref="flowExecutor" />
    <property name="flowUrlHandler">
        <bean class="org.springframework.webflow.context.servlet.WebFlow1FlowUrlHandler" />
    </property>
</bean>

http://docs.spring.io/spring-webflow/docs/2.3.x/reference/htmlsingle/#upgrade-guide

http://static.springsource.org/spring-webflow/docs/1.0.1/reference/index.html

关于java - 将 Spring Webflow 从 1.0.6 升级到 2.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9954446/

相关文章:

java - 需要通过java查询tile38

java - 为什么 Calendar 使用正确的时区返回错误的时间?

java - Jboss中的spring boot返回错误404

java - 如何将返回值和验证错误传达给方法的调用者?

java - 为什么我的网页在 Spring WebFlow 重定向后过期了?

java - LocalDateTime 时区有效,而 LocalTime 无效

java - 需要一个分布式键值查找系统

Spring boot + elasticsearch 前缀添加不起作用

ajax - Grails Webflow中的Json响应

grails - grails Webflow请求的资源不可用