문제
스프링 웹 흐름을 설정하려고합니다. 스프링 2.5 항아리와 SWF 2.0.8 항아리를 사용하고 있습니다. 여기에 내 구성 파일이 있습니다.
<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>u003Cbean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />nu003Cbean name="indexController" class="org.springframework.web.servlet.mvc.ParameterizableViewController" p:viewName="index" />
u003Cflow:flow-registry id="flowRegistry">u003Cflow:flow-location path="/WEB-INF/flows/flow.xml"/>u003C/flow:flow-registry>
u003Cflow:flow-executor id="flowExecutor" flow-registry="flowRegistry" />
u003Cbean id="flowMappings" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">nu003Cproperty name="order" value="0" />nu003Cproperty name="flowRegistry" ref="flowRegistry" />nu003C/bean>
u003Cbean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">nu003Cproperty name="flowExecutor" ref="flowExecutor" />nu003C/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)
해결책
찾을 수 없습니다 BeanDefinitionBuilder.genericBeanDefinition(String)
. 이 방법은 봄 2.5에 도입되었습니다
스프링 2.5를 사용하고 있다고 말하지만이 오류는 실제로 2.0 (또는 더 일찍)을 사용하고 있음을 나타냅니다. 클래스 경로에 여러 개의 스프링 사본이 없도록하십시오.
다른 팁
고전적인 원인은 오래된 Uber Spring-All-2.0.jar의 존재 또는 그와 같은 일부입니다.
Maven을 사용하는 경우 MVN 종속성의 출력을 확인하십시오 : 목록 및 종속성 : 다른 버전의 스프링 항아리의 트리.