2011-12-06 3 views
1

У меня есть следующие в моей web.xml:Spring конфигурации не найдена

<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] найдено зависимость: ожидается, по крайней мере, один боб, который квалифицируется как autowire кандидата на эту зависимость.

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

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

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

EDIT

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

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

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

+0

Д o У вас настроено «компонентное сканирование»? – stacker

+0

Конечно, я делаю :) – ccc

ответ

1

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

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

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

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

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


образец основного 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> 
+0

Вы не выполнили мой вопрос. Конфигурационные файлы ARE в пути к классам. И тот, который не найден, является именно -служебным, то есть в JAR. – ccc

+0

да, мой плохой. Где находится служба xml в вашем файле jar? находится ли он в корневом баночке или в каком-то каталоге? – fmucar

+0

Это в корне JAR. Я видел в документах Spring, что могут быть проблемы с подстановочными знаками. В итоге мне, вероятно, придется придерживаться списка имен контекстных файлов вместо использования подстановочных знаков, тем более, что это приложение должно работать на множестве серверов и версий. – ccc

3

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

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

Кроме того, в корне есть problems using patterns.

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

+0

Nope. classpath * ... не работает. Пробовал и Tomcat 7. Не повезло. – ccc

+0

Спасибо.К такому выводу пришел и я (избегая подстановочных знаков). Я рассмотрю идею импорта - никогда раньше этого не использовал, может быть, пришло время попробовать. – ccc

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

  • Нет связанных вопросов^_^