【发布时间】:2015-06-16 08:27:53
【问题描述】:
我是 Cxf 网络服务的新手,对所提供的信息有点不知所措。我写了一个扩展 AbstractPhaseInterceptor 的 cxf Interceptor(cxf:outInterceptors)。我试图在服务执行后使当前会话无效。我的问题是:
- 我是否在构造函数中使用了正确的阶段? (阶段。发送)
- 如何从消息中获取会话信息?现在,对于下面的方法请求实例返回 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
【问题讨论】:
标签: cxf