Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring webmvc: загружает контекст дважды / 7 сообщений из 7, страница 1 из 1
12.01.2017, 12:51
    #39383064
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
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
12.01.2017, 13:03
    #39383078
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
Ну, так, они, видать зависимы и грузят друг-друга. Вот 2 раза и выходит.
...
Рейтинг: 0 / 0
12.01.2017, 13:16
    #39383096
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
если всю конфигурацию перенести в /WEB-INF/spring/app/servlet-context.xml, а в приведенном web.xml оставить только то, что внутри <servlet> (listener удаляем), всё равно servlet-context.xml грузится дважды.
Особенности работы spring webmvc?
...
Рейтинг: 0 / 0
12.01.2017, 13:51
    #39383144
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
Ну так поставьте брейкпоинт в конструктор вашего уникального бина и раскрутите стэк.

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

У спринга обычно два контекста, один рутовый, который шарится между контекстами и веб-контекст. Так что если какой-то бин попал и туда и туда, то очень вероятны подобные ситуаии
...
Рейтинг: 0 / 0
12.01.2017, 14:33
    #39383184
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
забыл ник,
был у меня один конфиг, который стоял и там, и там, так там бины грузились 4 раза. Это я все уже просмотрел, теперь строго по 2 раза.
Поскольку в своем конфиге уверен, поставил брекпоинт в конструкторе org.springframework.web.servlet.DispatcherServlet . Заходит 2 раза. Похоже, томкат чудит
...
Рейтинг: 0 / 0
12.01.2017, 14:56
    #39383216
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
Ну судя по стектрейсу один раз грузится нераспакованный вар, а второй раз (наличие в стэке deploy_directory) уже распакованная директория. А там точно один варник или может есть какая-то незачищенная предыдущая версия? Ну и кэш томката попробуйте прибить
...
Рейтинг: 0 / 0
12.01.2017, 15:27
    #39383256
ivanra
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Spring webmvc: загружает контекст дважды
Приведенная выше картинка навела меня на одну мысль. Полез проверять - и точно, вот что оказалось.
В 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
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring webmvc: загружает контекст дважды / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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