2012年8月3日 星期五

Eclipse+SysdeoTomcatPlugin

要記錄一件很X的事件, 花了我一天, 剛好一天!
  因為要追 directjngine 的問題,  去載了它1.0的source. 因為看到它的eclipse專案匯入後用到.tomcatplugin, 所以就想說要去載Sysdeo的Plugin來試試看.之前知道這個PlugIn, 只知道它可以啟動tomcat; 看了http://www.eclipsetotale.com/tomcatPlugin.html 的說明, 看到 DevLoader 好像不錯(說明), 因為它可以直接從Eclipse啟動tomcat, 並動態載入class及jar, 按照它的說明,
1.Eclipse安裝了Plugin.
2.設定的tomcat.
3.將eclipse下dropins/com.sysdeo.eclipse.tomcat_3.3.0(我的載3.3.0版)的DevLoader.zip解壓到tomcat/common/classes裡面.(jk, 發現了嗎?紅字的部份)
4.將tomcat啟動(當然是用plugin的方式啟動)
結果, 還沒有作第3步時的錯誤: java.lang.ClassNotFoundException: org.apache.catalina.loader.DevLoader
變成
java.lang.NoClassDefFoundError: org/apache/catalina/loader/WebappLoader

接下來就是花了一天的時間作白工.

專案Properties內Tomcat的DevLoader Classpoath的Active DevLoader要啟動(打勾)
不是專案reloaderable=true的問題.
不是DevLoader.java的問題,我甚到還重新compile了DevLoader.
(DevLoader 繼承自 WebappLoader )
不是Tomcat版本的問題, 雖然網路上說它只支援到Tomcat5.x

是我解錯誤位置了, 應該要將DevLoader.zip 解到  [tomcat]\server\classes
重新啟動tomcat後, 看到console內有 
...

[DevLoader] Starting DevLoader
[DevLoader] projectdir=C:\Users\xxx\Documents\JavaProjects\xxx\WebContent
[DevLoader] added file:/C:/Users....

...
就是成功了.

大概是新手才會碰到的問題, 但是還是記錄一下, 免得再浪費一天.

如果是Tomcat6, 請將DevLoader 包成jar檔, 放在Tomcat6\lib下

2 則留言:

Jack-ClickAP 提到...
作者已經移除這則留言。
Jack-ClickAP 提到...

這裡有一篇文章提到DevLoader及專案的引用
http://guobin6125.iteye.com/blog/913889