ws的全局拦截器:出站网关

时间:2016-04-11 18:21:33

标签: spring-integration spring-ws

Spring集成的ws:outbound-gateway有一个拦截器和拦截器属性,允许我为出站springWS定义一个ClientInterceptor。

对于使用springWS的入站Web服务,我可以在sws:interceptors中定义全局拦截器。我使用它将所有入站请求记录到数据库中。

有没有办法为所有 ws:outbound-gateway实例定义拦截器?我想在数据库中记录所有Web服务的出站信息。

1 个答案:

答案 0 :(得分:0)

M-M-M在这个问题上没有这样一个直接的高级API。 虽然我想我们会使用WebServiceTemplate注入作为接受相同实例的点。但对于许多ws:outbound-gateway来说,无论如何都是注射。

inbound部分实际上是基于单个入口点,例如MessageDispatcherServlet,但outbound有不同的内容,因此没有全局访问权限。

无论如何,我建议你在一个配置类中使用一些技巧:

@Autowired
private List<AbstractWebServiceOutboundGateway> outboundWsGateways;

@PostConstruct
public void setup() {
   for (AbstractWebServiceOutboundGateway gateway: this.outboundWsGateways) {
        gateway.setInterceptors(...);
   }

}