Я новичок в Cxf webservice и немного перегружен предоставленной информацией. Я написал cxf Interceptor (cxf: outInterceptors), который расширяет AbstractPhaseInterceptor. Я пытаюсь сделать недействительным текущий сеанс после выполнения службы. Мои вопросы:Как аннулировать сеанс CXF Interceptor?
- Я использую правильную фазу в конструкторе? (Phase.Send)
- Как получить информацию о сеансе из сообщения? Прямо сейчас, для экземпляра запроса метода ниже null.
Или Есть ли лучший подход к этому?
public ServiceSessionInvalidator() {
super(Phase.SEND);
}
@Override
public void handleMessage(Message message) throws Fault {
System.out.println("Hitting Handler");
HttpSession session;
HttpServletRequest req = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
session = (req != null)? req.getSession(): null;
if(req == null){
System.out.println("Request is Null");
}
}
Выход:
16 Jun 2015 13:35:40 INFO - Inbound Message
----------------------------
ID: 1
Address: http://localhost:8090/services/VariableService/variableService/
Http-Method: GET
---
---
Hitting Handler
Request is Null
16 Jun 2015 13:35:41 INFO - Outbound Message
---------------------------
ID: 1
Response-Code: 200
Я сделал это, работая недействительным сеансом на входящей фазе (INVOKE), не затрагивая ответ. Я не был уверен, что это преждевременно прекратит запрос. Но запрос пробился. – Forkmohit