您的位置:首页 > 运维架构 > Tomcat

Tomcat中ServletContextListener监听器重复执行的有关问题,Myeclipse指定发布地址

2015-07-30 17:00 585 查看
继承了ServletContextListener的监听器,在Tomcat等服务器启动的时候contextInitialized方法被执行了两次

其实不是contextInitialized方法被调用两次,是Tomcat被启动了两次(或者说放到Tomcat的webapps中的Web应用被启动了两次)

Myeclipse默认发布空间是tomcat下webapps,Tomcat启动时会解压并部署。然后在Tomcat的server.xml中配置了虚拟目录,让用户输入网站域名可以直接访问。

这样就在Tomcat下启动了两个项目系统。

解决方案:

把项目放到别的目录下面去,项目就不会启动两次。

如果使用编辑器Myeclipse发布项目,默认发布目录是webapps,那就修改下Myeclipse默认发布目录

过程如下:

开启项目的按钮,鼠标放上去会显示Run/Stop/Restart Myeclipse Servers,点击倒三角按钮,会出现一个Manager Deployments

点击进入Server Deployments。Server选择<Custom Location>,

点击Add进入New Deployment。Project>选择项目,Deploy location>选择发布地址,finish。

这样就设置好了,但是tomcat启动不了随意指定的目录,所有要配置一下项目地址
打开tomcat的server.xml

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="D:\cesi\ckljhs" debug="0" privileged="true"> </Context>
</Host>

D:\cesi\ckljhs就是你发布的项目地址

这样contextInitialized方法就不会被调用两次了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java