eclipse中web項目部署以後jsp的java文件找不到問題(Tomcat配置serverlocations)

我的開發環境:eclipse kepler (4.3)+tomcat7.0.42.

在我想看eclipse中web項目jsp文件被tomcat轉換成java以後的java源文件的位置,發現正常情況下的webapps下面,沒有看到我部署的項目

同時,work目錄(jsp的工作目錄)下面也沒有生成相關的jsp的class文件和java源文件。但是我想看源碼啊。找了一堆關於jsp的源碼位置的文章,都說是在work下面可以找到。後來在不斷的嘗試下,我搜索了關鍵字 server locations的配置是什麼意思。找了下面的資料,加上了自己的一些補充和驗證,解決了上述問題。

首先看一下,資料內容。

 配置eclipse的開發環境,配置jdk的安裝路徑和tomcat安裝路徑。在eclipse下建立Dynamic Web Project工程zhgy,在使用eclipse中new一個tomcat,通過啓動該tomcat來發布Dynamic Web 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等多個克隆服務器,但是這裏每次只能啓動上面一個克隆服務器,因爲他們都使用的是相同的啓動端口(當然還有相同的關閉端口等)。

 

      這樣會給我們帶來很多的不方便。舉個例子:就上述工程而言,當我們在進行開發的時候,項目需要將上傳的圖片放入到工程的同級目錄的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爲工程目錄,而不是 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文件中有如下的設置:

實際上,下面的配置是tomcat管理其他目錄下的web項目的配置方式.在我的博文中tomcat虛擬路徑的配置中有介紹.
<Context docBase="D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp3\wtpwebapps\zhgy" path="/zhgy" reloadable="true" source="org.eclipse.jst.jee.server:zhgy"/>  
(以上部分來源於百度空間)
##########################################################################
通過上面的驗證,就應該明白了,爲何myeclipse下面部署的項目的jsp文件的java文件會在E:\DevelopSoftware\apache-tomcat-7.0.42\work\Catalina\localhost目錄下找到了.
因爲默認情況下,在eclipse中部署了外部的tomcat時,默認的serverlocations是這樣設置的:
打開此視圖的的方式是:雙擊server就ok了,不會的多試一下的啦.不做詳細介紹.
一般情況下,上面的面板打開以後,server locations是灰色的.
做如下操作:首先移除所有已經部署的項目,然後右擊servlet->clean一下,就ok了.
那麼上面可以看到server locations配置的三個選項.
1.使用workspace,不修改tomcat,而且發現部署的目錄也不是webapps.
這種情形下,要想找到jsp被tomcat轉換成的java文件,就需要到上文中提到的目錄下面去找了.具體路徑如下:
D:\workSpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps\ work\jsp
(找個目錄找起來當然不太方便,因爲plugins下面類似的目錄很多的啦)
2.使用tomcat的安裝目錄.
選擇第二選項後,server path也會自動修改,然後手動修改部署路徑就ok了.
也就是將deploy path改成webapps
3.第三種使用定製的目錄,實際上就是自己定義tomcat server 的location嗎。一般不使用。
瞭解了上述三種location配置,那麼我們要將web項目手動配置到tomcat的安裝目錄下,就很容易了。
同時做了這樣的配置以後,以後要想看jsp的源碼,也就直接在tomcat的安裝目錄下的work目錄中就可以找了。
於是,部署過的項目就可以找到jsp的源碼了.
E:\DevelopSoftware\apache-tomcat-7.0.42\work\Catalina\localhost\myDay11login\org\apache\jsp
tomcat配置虛擬路徑管理其它目錄下的web項目
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章