Как я могу получить объект ServletRequest из метода invoke () XFire AbstractHandler? - PullRequest
2 голосов
/ 06 января 2009

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

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

Есть идеи?

Приветствия

Шай

1 Ответ

2 голосов
/ 06 января 2009

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

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