Spring集成的ws:outbound-gateway有一个拦截器和拦截器属性,允许我为出站springWS定义一个ClientInterceptor。
对于使用springWS的入站Web服务,我可以在sws:interceptors中定义全局拦截器。我使用它将所有入站请求记录到数据库中。
有没有办法为所有 ws:outbound-gateway实例定义拦截器?我想在数据库中记录所有Web服务的出站信息。
答案 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(...);
}
}