見此問題和otherquestions你貼我有,你正在做的事情完全錯誤的感覺。這只是一個答案,應該讓它一切順利。
你應該從未在classpath中轉悠具體servletcontainer的庫的單獨副本。
你應該從來沒有在web應用程序的WEB-INF/lib
中放置servletcontainer特定庫的副本。
在像Eclipse這樣的IDE中,您應該從不在項目的構建路徑中分別添加servletcontainer特定的庫。
在堅果:只是不要接觸servletcontainer特定的庫。甚至不要單獨下載它們。這是麻煩的普通配方。分離不同servlet容器的庫會導致類路徑中的衝突。 servletcontainer應該被下載並且被視爲它自己的整體。
在Eclipse,整合servletcontainer(Tomcat或Glassfish的)時,只需添加它在服務器圖。
要與特定servletcontainer(服務器)的動態Web項目,以便您可以編譯servlet和等等,你需要在項目屬性的有針對性Rumtimes部分選擇相關聯。然後,由於Eclipse的智能,一切都會自動進行。這也是在必要時更改servletcontainer實現的地方。當您創建一個全新的動態Web項目時,您可以從嚮導的服務器下拉列表中選擇所需的servletcontainer實施。
當你想創建一個WAR,只需右擊動態Web項目,選擇出口然後WAR文件。不需要單獨的螞蟻任務左右。
BalusC,感謝您的積分。在最後一點上,我使用ant,因爲我將部署到網絡中的另一臺計算機上,因此容器的本地實例僅用於啓動和運行應用程序。我已經選擇了一個目標運行庫,因此給出了你在其他方面所說的內容,這些額外的庫僅僅是多餘的。 – volvox 2010-10-12 14:21:57