Как я могу получить объект ServletRequest из метода invoke () XFire AbstractHandler?

Я использую XFire в качестве поставщика веб-служб для Spring Remoting. Я использую AbstractHandler для аутентификации запроса SOAP. Идея состоит в том, чтобы идентифицировать запрос по домену исходного сервера и ключу API (а-ля Google Maps). Единственная проблема заключается в том, что я не могу найти способ получить объект ServletRequest из метода invoke (), который принимает только объект MessageContext.

Единственная идея, о которой я могу думать, - это использовать фильтр и хранить объект запроса внутри переменной ThreadLocal, но я бы предпочел избежать этого решения.

Любые идеи?

Ваше здоровье

Шай

Мне нужно узнать, какое имя хоста у сервера, отправившего запрос.

Electric Monk 06.01.2009 12:22
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
874
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Я не тестировал это, но у меня есть исходный код для XFire, поэтому я покопался в классах, чтобы увидеть, будет ли это легко. При вызове invoke вы сможете получить ServletRequest со следующим кодом:

ServletRequest request = (ServletRequest) context.getProperty(org.codehaus.xfire.transport.http.XFireServletController.HTTP_SERVLET_REQUEST);

Спасибо! Надо было самому подумать о загрузке исходного кода :)

Electric Monk 06.01.2009 23:22

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