我有一个问题,经过大量阅读和研究后,似乎tomcat正在运行自己的另一个实例,因此服务于我更新的应用程序的旧版本(或者以某种方式缓存了我的webapp的旧版本,只提供服务那。) 我在windows机器上的eclipse中处理应用程序并将其作为ROOT应用程序部署在Linux服务器上(将war文件重命名为ROOT.war)。 我想知道的是,有没有办法通过让tomcat记录服务于旧版本应用程序的servlet的上下文根的输出来找到tomcat所服务的旧版本。 现在看来,更新的应用程序创建的任何文件都是在正确的目录中创建的,但由于应用程序实例不同,因此无法在创建文件后立即访问这些文件。 欢迎任何帮助/提示
答案 0 :(得分:4)
要回答标题中的问题,请让您的代码基本上执行以下操作:
System.out.println(getServletContext().getRealPath("/"));
要解决问题中描述的问题,请关闭Tomcat并删除其/work
目录中的所有内容,删除/webapps
中展开的WAR并删除/Catalina
/conf
子目录目录(如果有的话),然后重新启动。