Announcement Announcement Module
Collapse
No announcement yet.
Upgrade from Spring webflow 1 to webflow 2 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Upgrade from Spring webflow 1 to webflow 2

    We have recently upgraded our project to Spring 3. Since Webflow 1.0 is not compatible with Spring 3.0 we now have to upgrade webflow to 2.0.Adding webflow 2.0 introduces a lot of compilation errors into the existing flows. To get around this problem I tried to proceed as explained in this question.
    http://stackoverflow.com/questions/9...m-1-0-6-to-2-3

    Code:
    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webflow</artifactId>
          <version>1.0.6</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.webflow</groupId>
          <artifactId>spring-webflow</artifactId>
          <version>2.3.2.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework.webflow</groupId>
          <artifactId>spring-binding</artifactId>
          <version>2.3.2.RELEASE</version>
        </dependency>

    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:flow="http://www.springframework.org/schema/webflow-config"
           xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
               http://www.springframework.org/schema/webflow-config
               http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd">
    
        <bean name="flowController" 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> 
    
        <flow:flow-executor id="flowExecutor" flow-registry="flowRegistry">
            <flow:flow-execution-attributes>
                <flow:always-redirect-on-pause value="true"/>
            </flow:flow-execution-attributes>
        </flow:flow-executor>
    
        <flow:flow-registry id="flowRegistry">
            <flow:flow-location-pattern value="/WEB-INF/flows/**-flow.xml"/>
        </flow:flow-registry>
    </beans>
    Please find the error I am getting below.

    Caused by: org.springframework.beans.factory.parsing.BeanDefi nitionParsingException: Configuration problem: Failed to import bean definitions from relative location [spring-isd-webflow.xml] Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is org.springframework.beans.factory.parsing.BeanDefi nitionParsingException: Configuration problem: Cannot locate BeanDefinitionParser for element [flow-executor] Offending resource: ServletContext resource [/WEB-INF/spring-isd-webflow.xml]

    I am pretty sure its wishful thinking if I expect this one to work but surely there must be some way to make it backward compatible without changing my flow implementation or the flow xml.

    On going through the docs I can see that changes needs to be made to upgrade the flow(Run the upgrade tool). But I would like to confirm if there are no other way to get around the problem.
Working...
X