2016-04-14 3 views
0

У меня есть два контекстных xml в папке WEB-INF; applicationContext.xml и app-servlet.xml. Я заявляю это приложение-servlet.xmlВесенний индивидуальный контекст, не наследующий корневой контекст

<context:component-scan base-package="com.training.hibernate.controller"/>

и это в applicationContext.xml

<context:component-scan base-package="com.training.hibernate.services"/> 
<context:component-scan base-package="com.training.hibernate.dao"/> 

Я получил эту ошибку

BeanCreationException: Error creating bean with name 'personController': Injection of autowired dependencies failed; 

Если я двигаю сканирование компонента услуг и dao в app-servlet.xml, у меня нет ошибок. Я предполагаю, что приложение-servlet.xml не наследуя applicationContext.xml

Это моя web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?> 

<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
    version="2.4"> 
    <display-name>Spring Web Application</display-name> 

    <servlet> 
     <servlet-name>app</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>app</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 
+1

Пожалуйста, поделитесь своими записями web.xml для загрузки ваших весенних xml-файлов. –

ответ

0

Вот некоторые направления я могу помочь вам прояснить различные контексты. Есть два основных контекстов обычно в основе веб-приложении Spring: Контекст

  1. Применения: контекст, который содержит бобы, такие как услуги, дао и т.д.

    <context-param> 
        <param-name>contextConfigLocation</param-name> 
        <param-value> 
         classpath:spring-config/applicationContext.xml 
        </param-value> 
    </context-param> 
    <listener> 
        <listener-class> 
         org.springframework.web.context.ContextLoaderListener 
        </listener-class> 
    </listener> 
    
  2. И тогда есть контекст диспетчерских сервлета , Это содержит определенные в Интернете компоненты. Этот контекст имеет доступ к компонентам, определенным через ContextLoaderListener выше.

    <servlet> <servlet-name>app</servlet-name> <servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-config/app-servlet.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>

Пожалуйста, проверьте, у вас есть это право.

+0

см. Мой web.xml. Я не использую ContextLoaderListener. –

+0

ОК. Кажется, ваш applicationContext.xml вообще не загружен в ваше приложение, так как вы используете настройки по умолчанию. Пожалуйста, следуйте описанному мной подходу. Или используйте ' внутри вашего приложения-servlet.xml. –

+0

Спасибо. Я пытаюсь импортировать один. –

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