壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4088|回复: 2

Compiere Web TimeOut

[复制链接]
发表于 2006/11/13 15:40:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
请问有在web开发的时候遇到TimeOut的问题的吗?表现为WebSessionCtx wsc = WebSessionCtx.get(request);
时.这个wsc为空.WebSessionCtx.get(request)这样调用
public static WebSessionCtx get (HttpServletRequest request)
{
  return get (request.getSession(false), false);
} // get


public static WebSessionCtx get (HttpSession session, boolean createNew)
{
  if (session == null)
   return null;
  WebSessionCtx wsc = (WebSessionCtx)session.getAttribute(NAME);
  // Create New
  if (wsc == null && createNew)
  {
   wsc = new WebSessionCtx ();
   session.setAttribute(NAME, wsc);
  }
  return wsc;
} // get


可以看到

private WebSessionCtx ()
{
  ctx = new Properties();
  language = Env.getLanguage (ctx);
} // WebSessionCtx

为他的构造器,当wsc不是空的时候,里面信息特别的复杂.有Ctx,dateFormat,loginInfo.Language....etc..为空的真正祸首在于
if (session == null)
   return null;
我就不是很明白,在我掌握的知识来看的话,session的生命周期和他的存在,都和浏览器的关闭,打开有关系.,或则你强制的把他=null,否则他就会随着浏览器的存在而存在,关闭而消失.这里的session为什么会是一空呢?他来自于request.getSession(false)方法.
发表于 2006/11/14 13:23:20 | 显示全部楼层
wsc里放着登陆后,compiere所需的ctx信息,该信息会在调用几乎所有compiere类时,前后传递。包括这个用户的role, user id, language,时间啦。
内容基本相当于用swing客户端登陆时,在preference里看到的内容。

wsc空的话,系统就直接转到timeout页面,要求重新登陆录了。
session 会有timeout时间的,然后看container, container会清掉session的。

怎么了,遇到什么问题,wsc在没有time out的时候,就null了?
 楼主| 发表于 2006/11/14 13:45:57 | 显示全部楼层
清除倒是没有看到,这种问题也是有的时候出现,有的时候不会出现.session存在,既然是存一些role, user id, language的东西,为什么要把它清除掉呢?Session-timeout时间是没有问题的,我已经改得很大了,我将他的核心代码
public static WebSessionCtx get (HttpServletRequest request)
        {
                   return get (request.getSession(false), false);                                }
        修改成了
public static WebSessionCtx get (HttpServletRequest request)
        {
                HttpSession session = request.getSession(false);
                if( null==session )
                {
                        session = request.getSession(true);
                }
                System.out.print("sesssion ID---->"+session.getId());
               
                return get (session, false);
        }        //        get
        暂时没有再出现Timeout的问题,另外Web上面的时间问题,也是很头疼.

[ 本帖最后由 BlueMeteorolite 于 2006-11-15 10:51 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 04:31 , Processed in 0.014206 second(s), 16 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表