2015-07-31 2 views
2

У меня есть фильтр, заданный в web.xmlSpring MVC 4 targetBeanName NoSuchBeanDefinitionException

<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 
<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value> 
     /WEB-INF/spring/root-context.xml 
     /WEB-INF/spring/security-context.xml 
    </param-value> 
</context-param> 
<filter> 
    <filter-name>WebResourceOptimizer</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
    <init-param> 
     <param-name>targetBeanName</param-name> 
     <param-value>wroFilter</param-value> 
    </init-param> 
    <init-param> 
     <param-name>targetFilterLifecycle</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>WebResourceOptimizer</filter-name> 
    <url-pattern>/wro/*</url-pattern> 
</filter-mapping> 
<filter> 
    <display-name>DomainFilter</display-name> 
    <filter-name>DomainFilter</filter-name> 
    <filter-class>com.cieloh.filter.DomainFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>DomainFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 
<filter> 
    <display-name>springSecurityFilterChain</display-name> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>springSecurityFilterChain</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<servlet> 
    <servlet-name>appServlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>appServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
<resource-ref> 
    <description>MySQL Datasource</description> 
    <res-ref-name>jdbc/MySQL</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

Я фасоль определен в сервлет-context.xml

<bean id="wroFilter" class="ro.isdc.wro.http.ConfigurableWroFilter"> 
    <property name="properties" ref="wroProperties" /> 
</bean> 

<bean id="wroProperties" 
    class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 
    <property name="location" value="classpath:wro.properties" /> 
</bean> 

Я получаю org.springframework .beans.factory.NoSuchBeanDefinitionException: не определен bean с именем wroFilter. Я не уверен, что мне здесь не хватает.

+0

Есть ли причина или другие детали в исключении? Коренная причина может отличаться от того, что вы видите, и часто встречается в весенних ошибках init. – codesalsa

ответ

1

Очевидно, вам не хватает функции прослушивания пружины и/или конфигурации контекстного параметра. Попробуйте добавить следующие конфигурации в web.xml:

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/spring/servlet-context.xml</param-value> 
    <!-- classpath:app-context.xml --> 
</context-param> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

Вы можете проверить следующее example project с помощью пружины с wro4j.

+0

Привет, Алекс. Спасибо за ответ. У меня есть слушатель в web.xml. Я не включил его изначально. Я редактировал сообщение, чтобы показать полный web.xml. – pyetti

+0

На самом деле, я отразил ваш web.xml, и теперь все работает. Огромное спасибо. – pyetti

Смежные вопросы