我在 Linux 上的 Tomcat 中运行 Java Web 服务。JWS 将继续为每个呼叫创建新会话。一旦用户完成 WebService 调用,我想删除/终止会话。这个事情谁有经验?我无法减少超时,因为 WebService 是更大应用程序的一部分。
问问题
665 次
2 回答
1
要么将 WS 移动到它自己的 Web 应用程序(可能一开始就应该这样做)并将其单独设置,安装一个 HTTP 过滤器拦截对 WS 的调用并在发送来自 WS 的响应后关闭会话,或者让 WS 自己关闭会话。
于 2013-03-26T12:52:24.620 回答
0
因此,作为一种解决方法,我在 JWS 中创建了一个方法,并在从方法返回数据之前调用它。有点粗糙,但它的工作...
private void dropWSSession(){
MessageContext messageContext = MessageContext.getCurrentContext();
HttpServlet servlet = (HttpServlet)messageContext.getProperty(HTTPConstants.MC_HTTP_SERVLET);
ServletContext servletContext = (ServletContext)servlet.getServletContext();
HttpSession session =((HttpServletRequest)messageContext.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST)).getSession();
session.invalidate();
}
于 2013-03-28T12:22:25.687 回答