在tomcat源碼ExpandWar.java類源碼中有這麼幾句代碼:
public static String expand(Host host, URL war, String pathname)
throws IOException{
...
File docBase = new File(appBase, pathname);
if (docBase.exists()) {
// War file is already installed
return (docBase.getAbsolutePath());
}
...
//解析war包;
...
return docBase.getAbsolutePath();
}
代碼解釋:
1,docBase表示tomcat的webapps/下的某個應用,例如對於test_war.war這個war包說
docBase就是E:\tomcat\webapps\test_war目錄的file實例,
即就是 docBase = new File(new File("E:\tomcat\webapps"),"test_war");
2,上述代碼的紅色部分是判斷該E:\tomcat\webapps\test_war路徑是否存在,如果存在則返回該路徑,而不進行下面的解壓war包的代碼;
綜上如果將test_war.war包放到webapps目錄中,然後再在webapps文件夾中創建一個test_war文件夾則,啓動tomcat之後test_war文件夾仍然爲空,沒有達到完整部署項目的目的,仍然訪問不到項目,所以,這個應該是tomcat的一個需要改進或是說修改的地方吧。