Java Spring 3配置ResponseStatusExceptionResolver warnLoggerCategory以使用log4j?
在Spring3.2.x中,我试图配置ResponseStatusExceptionResolver以指定warnLoggerCategory,但无法理解如何配置它 我创建了以下JavaConfig:Java Spring 3配置ResponseStatusExceptionResolver warnLoggerCategory以使用log4j?,java,spring,spring-mvc,Java,Spring,Spring Mvc,在Spring3.2.x中,我试图配置ResponseStatusExceptionResolver以指定warnLoggerCategory,但无法理解如何配置它 我创建了以下JavaConfig: @Configuration public class AppConfig { @Bean public ResponseStatusExceptionResolver responseStatusExceptionResolver(){ ResponseStat
@Configuration
public class AppConfig {
@Bean
public ResponseStatusExceptionResolver responseStatusExceptionResolver(){
ResponseStatusExceptionResolver resolver = new ResponseStatusExceptionResolver();
resolver.setWarnLogCategory("org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver.warnLogger");
return resolver;
}
}
但是,如果我在冲突解决程序中放置一个断点,当Spring调用它时(由于抛出异常),我会看到冲突解决程序是一个不同于JavaConfig中创建的对象。我认为这意味着我没有正确配置解析器,或者没有将其设置在正确的位置
我的JavaConfig中是否缺少一些东西,让Spring使用这个解析器而不是它使用的默认解析器?WebMVC配置是在XML配置中启动的,但我正在慢慢地尝试将所有内容迁移到JavaConfig。目前情况如下:
webmvc-config.xml:
<!-- The controllers are autodetected POJOs labeled with the @Controller annotation. -->
<context:component-scan base-package="com.iaa" use-default-filters="false">
<context:include-filter expression="org.springframework.stereotype.Controller" type="annotation" />
</context:component-scan>
<!-- Turns on support for mapping requests to Spring MVC @Controller methods
Also registers default Formatters and Validators for use across all @Controllers -->
<mvc:annotation-driven conversion-service="applicationConversionService" />
<!-- secure all controllers with method annotation -->
<security:global-method-security pre-post-annotations="enabled" />
<mvc:resources location="/js/, /, classpath:/META-INF/web-resources/, /WEB-INF/views/tiles/, /WEB-INF/views/templates/" mapping="/resources/**" />
<!-- Allows for mapping the DispatcherServlet to "/" by forwarding static
resource requests to the container's default Servlet -->
<mvc:default-servlet-handler />
<!-- Register "global" interceptor beans to apply to all registered HandlerMappings -->
<mvc:interceptors>
<bean class="org.springframework.web.servlet.theme.ThemeChangeInterceptor" />
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" p:paramName="lang" />
</mvc:interceptors>
<!-- Selects a static view for rendering without the need for an explicit controller -->
<mvc:view-controller path="/" view-name="index" />
<mvc:view-controller path="/uncaughtException" />
<mvc:view-controller path="/resourceNotFound" />
<mvc:view-controller path="/dataAccessFailure" />
<!-- Resolves localized messages*.properties and application.properties
files in the application to allow for internationalization. The messages*.properties
files translate Roo generated messages which are part of the admin interface,
the application.properties resource bundle localizes all application specific
messages such as entity names and menu items. -->
<bean
class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
id="messageSource" p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application"
p:fallbackToSystemLocale="false" />
<!-- Store preferred language configuration in a cookie -->
<bean class="org.springframework.web.servlet.i18n.CookieLocaleResolver"
id="localeResolver" p:cookieName="locale" />
<!-- Resolves localized <theme_name>.properties files in the classpath to
allow for theme support -->
<bean class="org.springframework.ui.context.support.ResourceBundleThemeSource" id="themeSource" />
<!-- Store preferred theme configuration in a cookie -->
<bean class="org.springframework.web.servlet.theme.CookieThemeResolver"
id="themeResolver" p:cookieName="theme" p:defaultThemeName="standard" />
<!-- This bean resolves specific types of exceptions to corresponding logical
- view names for error views. The default behaviour of DispatcherServlet
- is to propagate all exceptions to the servlet container: this will happen
- here with all other types of exceptions. -->
<bean
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver"
p:defaultErrorView="uncaughtException">
<property name="exceptionMappings">
<props>
<prop key=".DataAccessException">dataAccessFailure</prop>
<prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop>
<prop key=".TypeMismatchException">resourceNotFound</prop>
<prop key=".MissingServletRequestParameterException">resourceNotFound</prop>
</props>
</property>
</bean>
<!-- Enable this for integration of file upload functionality -->
<bean
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
id="multipartResolver" />
<!-- Tiles page resolver -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.tiles3.TilesViewResolver" >
<property name="cache" value="false"/>
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />
</bean>
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="tilesInitializer">
<bean class="com.iaa.system.tiles3.TilesInitializer" />
</property>
</bean>
<bean class="com.ia.web.ApplicationConversionServiceFactoryBean" id="applicationConversionService" />
数据访问失败
未找到资源
未找到资源
未找到资源
您有javaconfig,所以我假设您在某个地方有一个带有@EnableWebMvc
的类。让此类扩展WebMvcConfigurationSupport
并覆盖ConfigureHandlerExceptionResolver
,并将您的解析程序添加到列表中。@M.Deinum我不确定“让此类扩展WebMvcConfigurationSupport
”中的“此类”指的是什么。什么是“这个班”?此外,我实际上没有@EnableWebMvc
,但目前正在使用XML配置(webmvc config.XML)。我检查了配置文件,确实为SimpleMappingExceptionResolver
定义了一个bean,但是没有为WebMvcConfigurationSupport
定义任何bean。我已经编辑了这个问题并添加了我的webmvc-config.xml文件的内容。但是很明显,您使用的是名称空间和xml,因此是混合和匹配的。对于这个类,我指的是您没有的@EnableWebMvc
类。但要回答您的问题,请在已配置的ResponseStatusExceptionResolver
上,将order
属性设置为低于1的值。