Spring-WS: как получить доступ к MessageContext из PayloadEndpoint

Каков «канонический» способ доступа к MessageContext из PayloadEndpoint?

Мы используем PayloadEndpoint и АннотацияМаршаллингPayloadEndpoint, которые не открывают MessageContext своим внутренним методам invoke / invoke, но теперь им потребуется доступ к параметрам HTTP-запроса.

0
0
3 859
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Самый простой способ, который я могу придумать: создать конечную точку «оболочки», которая реализует MessageEndpoint. Затем вы можете извлечь параметры запроса и передать их вашей реальной конечной точке.

Вы можете сохранить переменные запроса в ThreadLocal, чтобы исходная конечная точка могла получить к ним доступ.

Это метод, который мы успешно применяем. Метод EndpointInterceptor в настоящее время не работает (начиная с Spring-ws 1.5.4), поскольку соединение все равно доступно - даже если перехватчик устанавливает ответ.

Hans-Peter Störr 03.11.2008 16:19

Кто-то на форуме Spring предложенный использует TransportContext для доступа к параметрам HTTP-запроса. Это помогает решить нашу конкретную проблему, но не отвечает на исходный вопрос, как получить MessageContext.

Другой идеей было бы ввести EndpointInterceptor и использовать ThreadLocal. Но я надеялся, что есть способ, менее похожий на взлом.

Другие вопросы по теме