Как отключить VelocityViewResolver ошибки весной?
Я использую скорость и пружину. В течение весны я использую VelocityViewResolver
в паре с ContentNegotiatingViewResolver
. По большей части, это работает отлично. Единственная проблема заключается в том, что ContentNegotiatingViewResolver
запрашивает VelocityViewResolver
с множеством различных наборов содержимого (как и должно быть).
Когда двигатель скорости не находит конкретный шаблон, возникает ошибка, подобная следующей:
2011-02-04 13:37:15,074 ошибка [http-8080-2] VelocityEngine: ResourceManager: не удается найти ресурс ' foo.формат JSON.ВМ' в любом загрузчике ресурсов.
Это не идеально. В идеале, если шаблон не найден, будет выдано предупреждение или что-то подобное. Если шаблон не существует для определенного типа контента, мне все равно... поскольку это означает, что тип контента не поддерживается через этот распознаватель представлений.
Любая идея о том, как я мог бы подавить эту ошибку, хотя VelocityViewResolver
, VelocityView
, или ContentNegotiatingViewResolver
?
3 ответа:
Итак, я обнаружил, что лучший способ сделать это-добавить оператор
logger
в мой конфигурационный файл журнала специально для движка Velocity (Velocity и мой проект используют ведение журнала Commons). Мое утверждение logger выглядит следующим образом:<logger name="org.apache.velocity.app"> <level value="OFF" /> </logger>
Проблема будет исправлена весной 3.2, см. SPR-8640. После этого улучшения вы сможете настроить Velocity view resolver для проверки неразрешенных представлений только один раз.
Это происходит потому, что ваш
ContentNegotiatingViewResolver
используетVelocityViewResolver
. Вы можете остановить его от этого, предоставив ему пустой (но ненулевой) список разрешителей представлений.<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver"> ... <property name="viewResolvers"> <list /> </property> </bean>