在linux下通过wls1033_generic.jar包安装了weblogic 10.3.3,一个简单的通过HttpSessionBindingListener实现踢人功能,以下是部分代码, 
public class UserTracker
    implements HttpSessionBindingListener, Serializable {
  private static UserTracker instance = null;//  userID列表
  public List trackerList = new ArrayList();  private UserTracker() {
    super();
  }  public static UserTracker getInstance() {
    if (instance == null) {
      instance = new UserTracker();
    }
    return instance;
  }  /**
   * 登录的时候记录
   * @param event HttpSessionBindingEvent
   */
  public void valueBound(HttpSessionBindingEvent event) {
    UserTrackerInfo newTracker = new UserTrackerInfo();
    newTracker.setUserCode((Integer)event.getSession().getAttribute("USERCODE"));
    newTracker.setSessionID(event.getSession().getId());
   //如果前面已经有登陆,则删除登陆的信息(踢人)
    //removeUserIfExist(newTracker.getUserCode());
   //增加自己
    operateTracker(newTracker, "add");
  }  /**
   * 超时的时候退出
   * @param event HttpSessionBindingEvent
   */
  public void valueUnbound(HttpSessionBindingEvent event) {
    UserTrackerInfo oldTracker;
    String sessionID = event.getSession().getId();
    Iterator it = trackerList.iterator();
    while (it.hasNext()) {
      oldTracker = (UserTrackerInfo) it.next();
      if (oldTracker.getSessionID().equals(sessionID)) {
        operateTracker(oldTracker, "remove");
        return;
      }
    }
  }  /**
   *添加删除用户登录信息,operateType值"add","remove"
   * @param event HttpSessionBindingEvent
   */
  public void operateTracker(UserTrackerInfo tracker, String operaterType) {
    if (operaterType.equals("add")) {
      trackerList.add(tracker);
    }
    if (operaterType.equals("remove")) {
      trackerList.remove(tracker);
    }  }  /**
   * 判断用户是否在登录页表中,如果不在,返回false
   * @param sessionID String
   * @return boolean
   */
  public boolean existInLoginList(String sessionID) {
    UserTrackerInfo oldTracker;    Iterator it = trackerList.iterator();
    while (it.hasNext()) {
      oldTracker = (UserTrackerInfo) it.next();
      System.out.println("新sessionid=================== "+sessionID);
      System.out.println("旧sessionid=================== "+oldTracker.getSessionID());
      if (oldTracker.getSessionID().equals(sessionID)) {
        return true;
      }
    }
    return false;
  }
}
sessionTimeout过滤器中判断session是否在存在缓寸列表中,
boolean isSessionValid = UserTracker.existInLoginList(req.getRequestedSessionId());  在linux weblogic 10.3.3下,发现isSessionValid始终为false,通过打印sessionid发现缓存trackerList内存放的sessionid与req.getRequestedSessionId()并不相同(同一个session),即HttpSessionBindingEvent.getSession().getId())与req.getRequestedSessionId()不同,但在windows weblogic10.3.3下,又可以,百思不得其解