Java Spring 3配置ResponseStatusExceptionResolver warnLoggerCategory以使用log4j?

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

在Spring3.2.x中,我试图配置ResponseStatusExceptionResolver以指定warnLoggerCategory,但无法理解如何配置它

我创建了以下JavaConfig:

@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的值。