Spring-WS:如何从PayloadEndpoint访问MessageContext
问题描述:
什么是从PayloadEndpoint访问MessageContext的“规范”方法?Spring-WS:如何从PayloadEndpoint访问MessageContext
我们正在使用PayloadEndpoint和AbstractMarshallingPayloadEndpoint,它们没有将MessageContext暴露给它们的invoke/invokeinternal方法,但现在需要访问HTTP请求参数。
答
我能想到的最简单的方法是:创建一个实现MessageEndpoint的'包装器'端点。然后,您可以提取您的请求参数并将它们传递给您的实际端点。
您可以将请求变量存储在ThreadLocal中,以便原始端点可以访问它们。
答
有人在春季论坛suggested上使用TransportContext来访问HTTP请求参数。这有助于解决我们的特定问题,但不回答如何获取MessageContext的原始问题。
另一个想法是引入EndpointInterceptor并使用ThreadLocal。但我希望有一种感觉不像破解的方式。
这就是我们成功使用的方法。 EndpointInterceptor方法目前不工作(从Spring-ws 1.5.4开始),因为无论如何连接都被访问 - 即使拦截器设置了响应。 – 2008-11-03 13:19:11