我发现删除文件conf / localhost /
myappname.xml会阻止应用初始化两次。基本上,Tomcat正在重新启动,然后重新启动旧版本的应用程序。然后,在Netbeans部署它时再次启动。解决方法是,在ContextListener
contextDestroyed()事件中添加了几行代码:
public void contextDestroyed(ServletContextEvent sce) {...String delme = sce.getServletContext().getInitParameter("eraseOnExit");if (delme != null && delme.length() > 0) { File del = new File(delme); if (del.exists()) { System.out.println("Deleting file " + delme); del.delete(); }}在web.xml中,在开发环境中添加以下内容:
<context-param> <description>Workaround for Tomcat starting webapp twice</description> <param-name>eraseOnExit</param-name> <param-value>/Users/xxx/apache-tomcat-7.0.42/conf/Catalina/localhost/myappname.xml</param-value></context-param>
然后,下次部署该应用程序时,将不会在部署之前再次启动它,因此不会启动两次。在部署之前或关闭时删除文件的任何其他想法将不胜感激。



