Весенний конфиг не найден - PullRequest
       34

Весенний конфиг не найден

1 голос
/ 06 декабря 2011

В моем web.xml есть следующее:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext-*.xml</param-value>
</context-param>

У меня есть 2 файла:

  • applicationContext-web.xml в WEB-INF рядом с Интернетом.xml
  • applicationContext-service.xml в myapp-service.jar

При развертывании приложения я получаю

Нет соответствующего компонентатип [AServiceBean] найден для зависимости: ожидается, что по крайней мере 1 бин, который квалифицируется как кандидат для автоматической передачи для этой зависимости.

Похоже, applicationContext-service.xml не найден.Если я скопирую его рядом с web.xml, он будет работать нормально.Я не могу понять, почему это происходит.

Сервер является Tomcat 6.

Любая помощь приветствуется.Спасибо.

РЕДАКТИРОВАТЬ

Для пояснения: если я использую

<param-value>
    classpath:applicationContext-web.xml,
    classpath:applicationContext-service.xml
</param-value>

, приложение развертывается без каких-либо проблем, так что это просто вопрос поиска(или не найти) applicationContext-service.xml

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

Попробуйте использовать classpath*:applicationContext-*.xml (перед двоеточием стоит звездочка).

Однако это может не сработать, например У JBoss есть проблемы, чтобы он работал, вам нужно использовать специальный загрузчик классов из jboss.

Также есть некоторые проблемы с использованием шаблонов в корне.

В любом случае, я бы рекомендовал избегать шаблонов, лучше сделать applicationContext.xml с двумя явными import утверждениями.

1 голос
/ 06 декабря 2011

Вам необходимо поместить файлы конфигурации в путь к классам.

WEB-INF/classess  is the directory you need to place your configuration files
classpath:applicationContext-*.xml will then work

или что-то подобное, чтобы сохранить их в одном месте

WEB-INF/classes/spring   
classpath:spring/applicationContext-*.xml

applicationContext-service.xml: вам не нужно копировать этот файл, если он уже находится в файле jar


Пример main-config.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/jee 
http://www.springframework.org/schema/jee/spring-jee-3.0.xsd         
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">


<import resource="classpath:spring/config1.xml" />
<import resource="classpath:spring/config2.xml" />
.
.
<import resource="classpath:spring/configN.xml" />


</beans>
...