Spring 3配置ResponseStatusExceptionResolver warnLoggerCategory使用log4j?

时间:2013-12-19 02:21:01

标签: java spring spring-mvc

在Spring 3.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 for Spring中缺少一些东西来使用这个Resolver而不是它使用的默认解析器吗? 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" />

0 个答案:

没有答案