2016-04-11 18 views
1

ws: outbound-gateway hat eine Interceptor- und Interceptor-Eigenschaft, mit der ich einen ClientInterceptor für einen Outbound-SpringWS definieren kann.Global Interceptor für ws: outbound-gateway

Für eingehende Webdienste mit SpringWS kann ich einen globalen Interceptor in SWS: Interzeptoren definieren. Hiermit protokolliere ich alle eingehenden Anfragen in eine Datenbank.

Gibt es eine Möglichkeit, einen Interzeptor für ALL zu definieren ws: Outbound-Gateway-Instanzen? Ich möchte ausgehende Informationen in einer Datenbank für alle Webdienste protokollieren.

Antwort

0

M-m-m. Es gibt keine solche direkte High-Level-API in der Sache. Obwohl ich denke, wir würden die WebServiceTemplate Injektion als einen Punkt verwenden, um die gleiche Instanz überall zu akzeptieren. Aber es ist sowieso eine Injektion für viele ws:outbound-gateway.

Der inbound Teil basiert wirklich auf dem einzelnen Einstiegspunkt, z. MessageDispatcherServlet, aber outbound hat unterschiedliche von ihnen, deshalb gibt es keinen globalen Zugang zu ihnen.

Ich schlage vor, Sie einige Trick in einem Ihrer Konfigurationsklasse, trotzdem:

@Autowired 
private List<AbstractWebServiceOutboundGateway> outboundWsGateways; 

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

}