Spring-WS:如何从PayloadEndpoint访问MessageContext

问题描述:

什么是从PayloadEndpoint访问MessageContext的“规范”方法?Spring-WS:如何从PayloadEndpoint访问MessageContext

我们正在使用PayloadEndpointAbstractMarshallingPayloadEndpoint,它们没有将MessageContext暴露给它们的invoke/invokeinternal方法,但现在需要访问HTTP请求参数。

我能想到的最简单的方法是:创建一个实现MessageEndpoint的'包装器'端点。然后,您可以提取您的请求参数并将它们传递给您的实际端点。

您可以将请求变量存储在ThreadLocal中,以便原始端点可以访问它们。

+0

这就是我们成功使用的方法。 EndpointInterceptor方法目前不工作(从Spring-ws 1.5.4开始),因为无论如何连接都被访问 - 即使拦截器设置了响应。 – 2008-11-03 13:19:11

有人在春季论坛suggested上使用TransportContext来访问HTTP请求参数。这有助于解决我们的特定问题,但不回答如何获取MessageContext的原始问题。

另一个想法是引入EndpointInterceptor并使用ThreadLocal。但我希望有一种感觉不像破解的方式。