java tomcat contextInitialized启动多次

蛋蛋の忧伤 2011-02-13 05:47:02
我在contextInitialized里面,使用timer定时器,发现这个contextInitialized会启动4次,后来经过仔细观察,发现是因为tomcat里面,我配置了4个网站,后来去掉3个后,contextInitialized就只运行一次了

但是这是在本地,传到服务器的时候,服务器上可是有4个网站的,我该怎么办呢?请大家给个解决办法

还有有没有办法我只监听到tomcat 里某1个项目的启动和停止呢?



不要用下面这个办法解决,除了下面这个不好的办法还有没有办法:

因为每个虚拟主机或者虚拟路径都有各自的CLASSPATH,所有就有各自的ClassLoader
他们在这一层是各自独立的。
你有10个站点,当然就各自启动各自的。

如果你确认这10个站点却是运行在1个机器上,你可以用一种比较卑鄙的方法来解决,我给你个思路,
强行占用一个端口

Java codetry{
ServerSocket s = new ServerSocket(11111); // 强行占用,如果已经被其它站点占用了,则会跑出异常
timer = new java.util.Timer(true);
...
}catch(Exception ex){

}
...全文
274 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dashuaishuiyun 2011-05-09
  • 打赏
  • 举报
回复
我最近也碰到这个问题,楼主的话是引用csdn上的吧,我觉得可以这样:在监听器设置一个静态变量,int number = 1.然后每次初始化的时候,只有当number==1的时候才设置定时器,然后number++.结果不管有多少次的初始化,都只有一个定时器任务。
wangshiyang 2011-02-14
  • 打赏
  • 举报
回复
围观,不知道楼主是在自言自语?
蛋蛋の忧伤 2011-02-13
  • 打赏
  • 举报
回复
不是吧,没有朋友说话啊

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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