Я смотрю на результат загрузки spring с помощью tomcat, и есть что-то очень странное ... Все дублируется. Что могло бы вызвать это? Как бы то ни было, это заставляет мое приложение работать странным образом.
Дополнительная информация:
Приложение представляет собой веб-приложение. Вся информация о Spring загружается с помощью загрузчика контекста (?), Определенного в файле web.xml. Мои файлы конфигурации разделены на 6 (или около того) файлов.
Пример вывода отладки:
[DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /
**; attributes: [REQUIRES_SECURE_CHANNEL][DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /
**; attributes: [REQUIRES_SECURE_CHANNEL][DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /
**; attributes: [ROLE_READ, ROLE_UPDATE][DEBUG,DefaultFilterInvocationDefinitionSource,main] Added URL pattern: /
**; attributes: [ROLE_READ, ROLE_UPDATE][DEBUG,AbstractFallbackMethodDefinitionSource,main] Adding security method [CacheKey[com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo(com.model.Foo2,java.lang.String) throws org.springframework.dao.DataAccessException]] with attribute [[ROLE_UPDATE]]
[DEBUG,AbstractFallbackMethodDefinitionSource,main] Adding security method [CacheKey[com.service.impl.FooServiceImpl; public abstract java.lang.Boolean com.service.IFooService.saveOrUpdateFoo(com.model.Foo2,java.lang.String) throws org.springframework.dao.DataAccessException]] with attribute [[ROLE_UPDATE]]
[INFO,AbstractSecurityInterceptor,main] Validated configuration attributes
[INFO,AbstractSecurityInterceptor,main] Validated configuration attributes




Вы уверены, что что-то в конфигурации ведения журнала не добавляет каждую категорию / средство ведения журнала в приложение более одного раза?
Это возможно с log4j, но не уверен насчет JCL или того, что последняя версия Tomcat использует под прикрытием.
Вы уверены, что на самом деле не получаете два HTTP-запроса? Что показывает журнал доступа Tomcat?
Это определенно похоже на дублированный вывод журнала. Вы проверили отметки времени? Если они точно такие же, вероятно, ваше приложение выполняет дорогостоящие вещи, и поэтому временные метки не должны совпадать.
Вы можете получить диагностическую помощь, добавив метку времени внутреннего приложения в формат журнала. В log4j я думаю, что это% r, то есть количество микросекунд с момента запуска приложения. Если они вообще различаются между операторами журнала, действия повторяются, если не ведение журнала.
В Tomcat, если ваше приложение настроено как приложение по умолчанию, его необходимо развернуть в корневом каталоге /. Если нет, то Tomcat запустит 2 копии вашего приложения, одну там, где вы ее разместили, а другую там, где он ожидает быть по умолчанию.
Это могло бы объяснить, что здесь происходит, если я правильно все это помню.
Ответ и комментарии здесь, скорее всего, будут правильными.
Опубликуйте свою конфигурацию log4j как обновление / редактирование вашего вопроса, а затем я опубликую исправление как обновление / редактирование своего ответа.
Я столкнулся с той же проблемой с вами, и это была просто проблема конфигурации log4j, вот моя исходная конфигурация
<category name = "org.springframework">
<level value = "INFO"></level>
<appender-ref ref = "basicAppender" />
</category>
В этой конфигурации весь класс в пакете org.springframework будет регистрироваться один раз, и, поскольку я не установил для свойства аддитивности значение false, регистратор "org.springframework" будет регистрироваться снова, и в результате все журналы будут дублированы. Поэтому я просто установил для свойства аддитивность значение false, и оно работает. Что ж, это просто моя ситуация, пусть будет вам полезно.
Я бы сказал, что уверен на 95%. Учитывая, что каждый HTTP-запрос обрабатывается дважды, я полагаю, что spring "загружается дважды"