Spring-WS: как получить доступ к MessageContext из PayloadEndpoint
Вопрос
Что такое "канонический" способ получить доступ к MessageContext из PayloadEndpoint?
Мы используем PayloadEndpoint и AbstractMarshallingPayloadEndpoint , которые не предоставляют MessageContext своим методам invoke / invokeinternal, но теперь должны получить доступ к параметрам HTTP-запроса.
Решение
Проще всего придумать: создать конечную точку «обертки», которая реализует MessageEndpoint . Затем вы можете извлечь параметры запроса и передать их фактической конечной точке.
Вы можете хранить переменные запроса в ThreadLocal, чтобы исходная конечная точка могла получить к ним доступ.
Другие советы
Кто-то на форуме Spring предложил использовать TransportContext для доступа к параметрам HTTP-запроса. Это помогает решить нашу конкретную проблему, но не отвечает на первоначальный вопрос, как получить MessageContext. Р>
Другой идеей было бы представить EndpointInterceptor и используйте ThreadLocal. Но я надеялся, что есть способ, который меньше похож на взлом.