servletcontext監聽器的啓動位置以及tomcat和eclipse的目錄結構

情景:

想在應用啓動的時候就加載spring容器 在ServletContextListener.contextInitialized()中加載spring容器
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
結果發現一直報"找不到文件的IO錯誤",於是就打印下當前路徑 "D:\install\eclipse-jee-mars-1-win32-x86_64\eclipse" 結果居然跑到了eclipse的安裝目錄來了,不是工作目錄也不是tomcat的目錄,這就神奇了吧 然後我就直接用tomcat發佈,不用eclipse了 結果當前路徑在 "C:\Program Files\Apache Software Foundation\Tomcat 8.0_Tomcat\bin" 這就尷尬了,我的應用在webapps裏面啊,怎麼會跑到這裏來了呢

原因

一、eclipse

在eclipse中,啓動服務器是由eclipse.exe啓動 servletcontext監聽器的初始化是在啓動服務器的過程就完成的,所以自然當前目錄在"D:\install\eclipse-jee-mars-1-win32-x86_64\eclipse"

二、tomcat

在tomcat中,啓動服務器是由startup.bat啓動 所以當前目錄就在"C:\Program Files\Apache Software Foundation\Tomcat 8.0_Tomcat\bin"

不同環境的web目錄結構

凡是涉及到路徑的,都會因爲環境的不同而不同,window、linux、eclipse、tomcat各不相同

eclipse的目錄結構

eclipse目錄結構

tomcat的目錄結構

tomcat目錄結構

總結

特別要注意的是class文件的放置!!!eclipse中class放在/build/classes裏面 在tomcat中class放在/WEB-INF/classess裏面

查看原文:http://139.129.55.235/2016/05/30/servletcontext%e7%9b%91%e5%90%ac%e5%99%a8%e7%9a%84%e5%90%af%e5%8a%a8%e4%bd%8d%e7%bd%ae%e4%bb%a5%e5%8f%8atomcat%e5%92%8ceclipse%e7%9a%84%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章