一个奇怪的问题寻求高高手

lxj20000forever 2016-02-20 07:35:41
一个简单的websocket的通信servlet
ChatAnnotation 是websocket实现类
首先用private static final的哈希表对所有ChatAnnotation 实例进行组织
private static final Hashtable<String, ChatAnnotation> connectionscom=new Hashtable<String, ChatAnnotation>();
当一个通道发送自己的标识字符串时,把该通道实例放到hashtable中,并以标识comid做索引即
connectionscom.put(this.comid,this);
当需要和指定通道发消息时,用ChatAnnotation client=connectionscom.get(curcallcomid);检索出通道实例来,然后往指定通道
发消息
client.session.getBasicRemote().sendText("comming"+":"+callid);
现在的问题是:
开始一切正常,但发现过了大概2小时后,ChatAnnotation client=connectionscom.get(curcallcomid);取出的是NUll
而实际上该通道的心跳都正常,也就是客户端和服务器servlet仍然保持通信,但private static final的哈希表感觉丢失掉了,这是怎么回事

,请高高手指点一下,这个问题有点令人困惑啊
...全文
154 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZiglarXie 2016-02-22
  • 打赏
  • 举报
回复
打日志看 key value有没有变化

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧