日期:2014-05-20  浏览次数:20695 次

一个非常棘手的问题,望大虾来帮忙!有关session的问题
我开发了一个系统,在本地测试都没有问题,但是放到远程数据库上系统就一直崩溃,经测试原因似乎是出在登录后找不到记录登录用户信息的session上,我的源代码是这样的
LoginAction.java:(部分代码)

HttpSession   session   =   request.getSession(false);

if   (session   !=   null)   {

session.invalidate();
}
UserContainer   existingContainer   =   new   UserContainer();
session   =   request.getSession(true);
existingContainer.setUserView(userView);
synchronized   (this)   {
session.setAttribute(
IConstants.USER_CONTAINER_KEY,
existingContainer);
}
以上是登录的servlet,主要是将登陆者的信息放到session上,登录的首页显示没有问题,但是一旦访问了带有读取session信息的servlet的时候就开始出错了,比如说这样的servlet,

UserContainer   existingContainer   =   null;

existingContainer   =   getUserContainer(request);
qryResultContainerHm   =   existingContainer.getQryResultContainerHm();
UserView   userView   =   existingContainer.getUserView();
long   userid   =   userView.getUser_id();一到 这里系统就崩掉了。
有的时候 到这里 if   (request.getSession().getAttribute(IConstants.USER_CONTAINER_KEY)
==   null)   {
errors.add(
ActionErrors.GLOBAL_ERROR,
new   ActionError(IConstants.ERROR_SESSIONINVALIDATION_KEY));
saveErrors(request,   errors);
return   mapping.findForward(IConstants.AUTHENTICATE_KEY);
}   也报错,有的时候还出现数据库链接失败的提示
所以我怀疑是出在session上面,请各位大虾帮帮忙,帮我看看是什么原因引起的?问题的关键是为什么本地测试都没有问题,到了服务器上就不行了



------解决方案--------------------
9494
用try{}catch()详细的错误!
可能服务器的配置不同
------解决方案--------------------
错误问题比较多
你做一下try 处理 尽量全面些
然后输出异常~~
------解决方案--------------------
这么多错误。。。
从第一个错误开始一步步跟踪代码看看
------解决方案--------------------
连不上去。

程序的bug(即在某些上下文中的逻辑问题)造成的。

建议,使用与服务器相同的场景测试。

我觉得可能是服务器或数据不同。

建议,开服务器的远程调试。
然后在eclipse中远程调试。
------解决方案--------------------
你服务器配置路径啊之内的有没问题呢?换了机子就不行了。那一般来说是哪个工具没配置好吧..,检查下配置有没不对的端口有没冲突的,你本地访问用的localhost吧?你有试过本地远程饶回来访问你自己的机子没呢?