powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring webmvc: загружает контекст дважды
7 сообщений из 7, страница 1 из 1
Spring webmvc: загружает контекст дважды
    #39383064
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
web.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	<!-- The definition of the Root Spring Container shared by all Servlets 
		and Filters -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/spring/root-context.xml</param-value>
	</context-param>

	<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!-- Processes application requests -->
	<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/app/servlet-context.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>


Почему загрузка контекста, и в /WEB-INF/spring/root-context.xml и в /WEB-INF/spring/app/servlet-context.xml происходит дважды? Раньше не замечал этого, после того, как один из бинов стал резервировать некий уникальный ресурс (tcp порт), заметил ошибку, что ресурс уже занят. На работоспособность приложения не влияет, но не хотелось бы таких сюрпризов.
Версия spring 3.2.x
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383078
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, так, они, видать зависимы и грузят друг-друга. Вот 2 раза и выходит.
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383096
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
если всю конфигурацию перенести в /WEB-INF/spring/app/servlet-context.xml, а в приведенном web.xml оставить только то, что внутри <servlet> (listener удаляем), всё равно servlet-context.xml грузится дважды.
Особенности работы spring webmvc?
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383144
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так поставьте брейкпоинт в конструктор вашего уникального бина и раскрутите стэк.

Вообще это довольно частая ситуаци если где-то накосячили в xml.

У спринга обычно два контекста, один рутовый, который шарится между контекстами и веб-контекст. Так что если какой-то бин попал и туда и туда, то очень вероятны подобные ситуаии
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383184
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл ник,
был у меня один конфиг, который стоял и там, и там, так там бины грузились 4 раза. Это я все уже просмотрел, теперь строго по 2 раза.
Поскольку в своем конфиге уверен, поставил брекпоинт в конструкторе org.springframework.web.servlet.DispatcherServlet . Заходит 2 раза. Похоже, томкат чудит
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383216
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну судя по стектрейсу один раз грузится нераспакованный вар, а второй раз (наличие в стэке deploy_directory) уже распакованная директория. А там точно один варник или может есть какая-то незачищенная предыдущая версия? Ну и кэш томката попробуйте прибить
...
Рейтинг: 0 / 0
Spring webmvc: загружает контекст дважды
    #39383256
ivanra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приведенная выше картинка навела меня на одну мысль. Полез проверять - и точно, вот что оказалось.
В conf/server.xml нахожу:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
  <Context docBase="jcr-adapter" path="/spring-jsf-jpa" reloadable="true" source="org.eclipse.jst.jee.server:jcr-adapter">
    <!-- disable storage of sessions across restarts -->
    <Manager pathname=""/>
    <Resource auth="Container" factory="org.jboss.weld.resources.ManagerObjectFactory" name="BeanManager"
      type="javax.enterprise.inject.spi.BeanManager"/>
    <!-- Uncomment to enable injection into Servlets, Servlet Listeners and Filters in Tomcat -->
    <!-- <Listener className="org.jboss.weld.environment.tomcat.WeldLifecycleListener"/> -->
  </Context>


Приложение запускается второй раз с путем /spring-jsf-jpa
Удаляю - из батника стартует без повторов, в эклипсе - эта ерунда добавляется снова, и опять приложение грузится дважды. Поискал по проекту строчку "spring-jsf-jpa" - она есть только в pom.xml, попала туда, видимо, из архетипа
Код: xml
1.
2.
3.
4.
<build>
  <finalName>spring-jsf-jpa</finalName>
...
</build>


Убрал, теперь и в эклипсе нормально.
такая особенность работы связки eclipse+tomcat
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring webmvc: загружает контекст дважды
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]