Spring application-контекст, не может быть загружен (свойство-заполнитель) .файл свойств

#spring

#spring

Вопрос:

У меня есть веб-приложение, которое загружает файлы контекста приложения из многих мест.

Один из файлов контекста приложения находится в файле .jar (этот jar присутствует в WEB-INF / lib).

В этом контексте приложения есть запись, подобная этой:

<контекст: свойство-заполнитель location="путь к классу:META-INF/spring/default.app.properties" игнорировать-неразрешимый="true" игнорировать-ресурс-не-найден ="true"/>

Но default.app.properties никогда не найден. Я продолжаю получать ошибки о том, что не удалось разрешить заполнитель ‘db.driver’ — то, что определено в default.app.properties и упоминается в контексте приложения через $ {db.driver}

Это почти так, как если бы свойство-заполнитель игнорировалось. Я тоже попытался указать абсолютный путь к моему default.app.properties .. даже это не сработало бы.

Комментарии:

1. вы уверены, что xml загружен?

2. Да, XML загружается, потому что, если я введу ошибку в context:property-placeholder (например: переименовать местоположение в locati) — я вижу ошибку. Любые идеи / подсказки — что я могу попробовать?

3. как вы загружаете XML-файлы? использование <import ?

4. @Bozho WEB-INF/web.xml содержит следующие строки: <code> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/web-application-context.xml путь к классу*:META-INF/**/*context.xml </param-value> </context-param> </code> В результате возникает application-context.xml в файле jar в WEB-INF/lib. Он загружается … и у него есть свойство-заполнитель, которое просто отказывается работать.

5. @Bozho — Что-нибудь, что я могу попробовать и сообщить? Полностью застрял здесь.

Ответ №1:

Вы решили эту проблему? Недавно я использовал то же самое. Мое решение простое и вряд ли будет иметь место, но … в моем случае было два типа заполнителей разных типов. Один тип был настроен с помощью

<context:property-placeholder/>

другой тип был настроен как компонент типа ServletContextPropertyPlaceholderConfigurer . Удаление одного типа заполнителя решило проблему.

Ответ №2:

Поскольку Spring разрешает существование только одного <context:property-placeholder/> , Когда Spring найдет <context:property-placeholder/> , он проигнорирует остатки. Итак, поместите все properties conf в одно место.

ссылка на :http://www.iteye.com/topic/1131688