我正在尝试实现HandlerInterceptorAdapter
以便能够将请求/响应捕获为前/后处理器。由于某种原因,调用不会通过我的拦截器。有多个例子,但在我的案例中我找不到问题。现在我想在它进入实际服务并记录一些数据之前捕获请求。
注意:我没有任何渲染视图。
拦截班:
public class ESignLoggingInterceptor extends HandlerInterceptorAdapter {
private static final String CLASS_NAME = ESignLoggingInterceptor.class.getSimpleName();
@SuppressWarnings("unused")
@Override
public boolean preHandle( HttpServletRequest request, HttpServletResponse response, Object handler ) throws Exception {
String url = null;
if( request != null ) {
url = request.getRequestURL().toString();
}
return true;
}
}
spring.xml
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/rest"/>
<bean class="com.mercuryinsurance.esignature.common.logging.ESignLoggingInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/soap"/>
<bean class="com.mercuryinsurance.esignature.common.logging.ESignLoggingInterceptor" />
</mvc:interceptor>
</mvc:interceptors>
答案 0 :(得分:0)
我知道解决这个问题的两种方法,我也遇到过。
第一个就像你在尝试一样。请检查:
<mvc:mapping path="/soap"/>
到<mvc:mapping path="/soap/**"/>
<mvc:mapping path="/rest"/>
至<mvc:mapping path="/rest/**"/>
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"
第二个
声明你的拦截器如下
@Bean
public MappedInterceptor myInterceptor() {
return new MappedInterceptor(null, new MyLoggingInterceptor());
}
编辑:将@Component添加到您的班级