1. 程式人生 > >eclipse中web專案部署以後jsp的java檔案找不到問題(Tomcat配置serverlocations)

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以下能夠找到。

後來在不斷的嘗試下。我搜索了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檔案裡有例如以下的設定:

實際上,以下的配置是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的安裝資料夾下,就非常easy了。 同一時候做了這樣的配置以後,以後要想看jsp的原始碼,也就直接在tomcat的安裝資料夾下的work資料夾中就能夠找了。

於是,部署過的專案就能夠找到jsp的原始碼了. E:\DevelopSoftware\apache-tomcat-7.0.42\work\Catalina\localhost\myDay11login\org\apache\jsp tomcat配置虛擬路徑管理其他資料夾下的web專案