0

我在 Linux 上的 Tomcat 中运行 Java Web 服务。JWS 将继续为每个呼叫创建新会话。一旦用户完成 WebService 调用,我想删除/终止会话。这个事情谁有经验?我无法减少超时,因为 WebService 是更大应用程序的一部分。

4

2 回答 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 回答