1. 程式人生 > >解決Setting property 'source' to 'org.eclipse.jst.jee.server的問題

解決Setting property 'source' to 'org.eclipse.jst.jee.server的問題

這是我於2013年9月4號晚遇到的問題,為了這個問題我一夜沒睡!
對於這個問題,我相信我的方法已經能幫90%的人解決了!
當你用Eclipse執行web專案的時候,你就會看到控制檯出現:
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:firstProject' did not find a matching property.
這樣的字樣,說的是server.xml的Service標籤裡的Engine標籤裡的Host標籤裡的Context標籤配置了一個'source'屬性,屬性值是'org.eclipse.jst.jee.server:firstProject'.
但問題是Context標籤是不支援source這個屬性的,所以跳出了警告,所以大家也發現的是,儘管有警告,但是大部分人的程式是依然可以執行沒有問題的,但少部分人的不能夠執行。

也許你已經在網上查到很多像這樣的問題,而且也給出瞭解決辦法,但是你照著解決的方法去做了,警告依然存在!
那現在你就可以跟著我的步驟來做了:

我先說一下網上別人所說的步驟,埋個伏筆
1.雙擊Servers裡的Tomcat v7.0 at localhost

2.然後跳出個介面:

看到沒,在Server Options選項裡有個Publish module contexts to separate XML files的選項,到這裡我們也一樣把勾勾上,不過問題不是這樣就一定解決了,我說過有的朋友這樣做了,問題依然沒有解決,把勾勾上以後記得儲存,如果警告依然存在的朋友們跟著我繼續往下看。

3.

大家仔細對比下你自己的和我圖片上的,你會發現你預設的選項應該是Use workspace metadata這個選項,只不過是筆者我改為了tomcat的安裝路徑罷了,因為Use workspace的路徑資料夾不方便後面的講解中要找的檔案,所以筆者使用第2個tomcat安裝目錄來操作,而Deploy path:你如果沒有改過的話,應該是叫wtpwebapps,因為在寫文章之前,我已經改掉了也不清楚是不是這個名字了,但確定的一點是,它肯定不是webapps的,所以此處讀者根據自己的Deploy path的值進行下面的操作。
好了準備工作差不多了,現在是重點來了,為什麼好多人做了1.2步操作以後就好了而你自己的沒好呢?

原因是,在做1 2 步操作之前你們已經執行過程式,而執行以後程式就會在tomcat資料夾下多了一個backup資料夾

裡面的目錄結構如圖:

有沒有很熟悉的感覺,沒錯這就是從tomcat目錄裡conf資料夾下拷貝過來的檔案
接下來直接說操作好了:
4.
刪除掉剛才的backup資料夾[backup所在位置根據第3步所說的,因為筆者使用的時tomcat安裝目錄所以就在目錄下就直接發現了,但如果你用的是Use workspace metadata這個選項的話,你就在\workspace\.metadata\.plugins\org.eclipse.wst.server.core路徑下可以看到裡面有很多的檔案,Eclipse就把專案釋出到了這裡,裡面的目錄結構和tomcat裡面的差不多,總之把\workspace\.metadata\.plugins\org.eclipse.wst.server.core裡面的檔案全刪除了就可以了]
5.
找到tomcat目錄裡的conf目錄裡的Catalina目錄裡有個localhost資料夾,把資料夾裡面的檔案全刪除掉。
6.
此處告訴大家3.4.5步驟純屬告訴你們Eclipse釋出的一個細節,刪除上面的檔案其實不用那麼麻煩:
在Servers下Tomcat v7.0 at localhost裡,首先右鍵-->移除裡面已經新增的所有工程,然後右鍵-->Clean清空專案虛擬目錄裡的檔案,然後重新執行你們的程式就可以了。

注意:如果有人想和我一樣在第3步server locations裡修改專案釋出目錄的話,只要釋出過一次專案你會發現,server locations裡面的選項是灰色的,不可以改,怎麼辦呢,這就需要你照著第6步裡面的移除專案,清空檔案,然後你就驚奇的發現,server locations可以修改了,OK,累了,我去,寫了3個小時,希望能幫到你們解決你們的問題,See You!!!!