Ошибка конфигурации Spring Web Flow

I am trying to setup spring web flow. I am using spring 2.5 jars and swf 2.0.8 jar Here is my configuration file:

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="order" value="1" />
<property name="mappings">
<props>
<prop key="index.htm">indexController</prop>
</props>
</property>
</bean>

‹Bean id =" viewResolver "class =" org.springframework.web.servlet.view.InternalResourceViewResolver "p: prefix =" / WEB-INF / jsp / "p: suffix =". Jsp "/› ‹bean name =" indexController "class =" org.springframework.web.servlet.mvc.ParameterizableViewController "p: viewName =" index "/›

‹Flow: flow-registry id =" flowRegistry "› ‹flow: flow-location path =" / WEB-INF /flow / flow.xml "/› ‹/ flow: flow-registry›

‹Поток: поток-исполнитель id =" flowExecutor "flow-registry =" flowRegistry "/›

‹Bean id =" flowMappings "class =" org.springframework.webflow.mvc.servlet.FlowHandlerMapping "› ‹property name =" order "value =" 0 "/› ‹property name =" flowRegistry "ref =" flowRegistry "/ ›‹/Bean›

‹Bean class =" org.springframework.webflow.mvc.servlet.FlowHandlerAdapter "› ‹property name =" flowExecutor "ref =" flowExecutor "/› ‹/bean›

И когда я запускаю сервер (tomcat 6.0), я получаю следующую ошибку:

javax.servlet.ServletException: Servlet.init() for servlet webapp threw exception
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    java.lang.Thread.run(Thread.java:619)
root cause

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/webapp-servlet.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.support.BeanDefinitionBuilder.genericBeanDefinition(Ljava/lang/String;)Lorg/springframework/beans/factory/support/BeanDefinitionBuilder;
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:385)
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:142)
    org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:158)
    org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)
    org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92)
    org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:97)
    org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:411)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:338)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:332)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:266)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:236)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:126)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
    java.lang.Thread.run(Thread.java:619)

person Abdel Raoof Olakara    schedule 09.02.2010    source источник
comment
@skaffman, есть идеи, как решить эту проблему?   -  person Abdel Raoof Olakara    schedule 10.02.2010


Ответы (2)


Не может найти BeanDefinitionBuilder.genericBeanDefinition(String). Этот метод был представлен в Spring 2.5.

Вы говорите, что используете Spring 2.5, но эта ошибка предполагает, что вы действительно используете версию 2.0 (или более раннюю). Убедитесь, что в пути к классам нет нескольких копий Spring.

person skaffman    schedule 10.02.2010
comment
Это странно! Я использую Netbeans 6.8 ... Spring 2.5 поставляется с ним ... но когда я загрузил Spring 2.5.6 и добавил в проект ... проблема была решена! - person Abdel Raoof Olakara; 14.02.2010

Классическая причина - наличие старого uber spring-all-2.0.jar или чего-то подобного.

При использовании maven проверьте вывод mvn dependency: list и dependency: tree для spring jar-файлов с разными версиями.

person Gareth Davis    schedule 10.02.2010