我的開發環境:eclipse kepler (4.3)+tomcat7.0.42.
在我想看eclipse中web項目jsp文件被tomcat轉換成java以后的java源文件的位置。發現正常情況下的webapps以下。沒有看到我部署的項目
同一時候,work文件夾(jsp的工作文件夾)以下也沒有生成相關的jsp的class文件和java源文件。可是我想看源代碼啊。找了一堆關於jsp的源代碼位置的文章,都說是在work以下能夠找到。
后來在不斷的嘗試下。我搜索了keyword server locations的配置是什么意思。找了以下的資料,加上了自己的一些補充和驗證。攻克了上述問題。
首先看一下。資料內容。
配置eclipse的開發環境,配置jdk的安裝路徑和tomcat安裝路徑。在eclipse下建立Dynamic Web Projectprojectzhgy。在使用eclipse中new一個tomcat,通過啟動該tomcat來公布Dynamic Web Project的時候,事實上並未將project公布到tomcat 安裝文件夾所在的 webapps下。
這點能夠去上述的tomcat 安裝文件夾 的webapps文件夾下查看。
從啟動時候的控制台輸出來看項目是被公布到了例如以下的文件夾:
信息: Set web app root system property: 'webapp.root' = [ D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ ]
打開該文件夾能夠非常清楚的看到存在zhgy這樣一個文件夾,這就是我們如今能夠訪問的項目文件夾。
再打開 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 這個文件夾,能夠看到這個文件夾下的結構和 D:\Tomcat 7.0 的文件夾結構是一模一樣的,僅僅是多了個wtpwebapps文件夾。事實上 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\ 這個文件夾就是eclipse的對 D:\Tomcat 7.0 文件夾的一個克隆,從而使 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\也能夠具備源服務器的功能。
假設再new幾個服務器。就會在 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\ 文件夾下依次出現temp0、temp1、temp2等多個克隆服務器。可是這里每次僅僅能啟動上面一個克隆服務器,由於他們都使用的是同樣的啟動port(當然還有同樣的關閉port等)。
這樣會給我們帶來非常多的不方便。
舉個樣例:就上述project而言,當我們在進行開發的時候。項目須要將上傳的圖片放入到project的同級文件夾的upload文件夾的時候,會發現圖片是上傳到了所在的文件夾 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\upload\ 。可是無法在瀏覽器中訪問到上傳的圖片。這時候我們能夠手動將該upload文件夾整個拷貝到 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\ ,這時在瀏覽器中的確就能夠訪問了。造成這樣的現象的原因是tomcat服務器默認webapps為project文件夾,而不是 wtpwebapps 文件夾。之所能夠通過瀏覽器訪問 D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\zhgy\ 下的zhgy這個項目。是由於eclipse通過tomcat公布項目的時候在 D:\workSpace-jx\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\conf 文件夾的server.xml文件里有例如以下的設置:

