2013-04-06 40 views

回答

3

該servlet規範說明部署描述符是WEB-INF/web.xml。這就是所有的工具和所有的servlet容器/應用程序服務器都同意並知道要處理的。

你爲什麼要這麼做?

在某些情況下,你不需要一個在所有 - 看到的servlet spec 3.0

包含一個web.xml,如果它不 包含一個Web應用程序並不需要A.6.6節任何Servlet,Filter或Listener組件。換句話說,僅包含靜態文件或JSP頁面的 應用程序不需要 存在web.xml。

編輯:回答您的意見,如果你想有兩個不同的版本爲兩個不同的appservers,您應該配置不同都appservers(例如,通過提供不同的參數 - 瞭解JNDI的例子,用它來連接到你的數據庫),通過構建時間的變化,例如配置ant或maven以構建webapp的兩個版本,或者在部署時 - 例如腳本部署並在部署步驟中通過腳本更新WAR文件。

我錯過了一個答案:Tomcat(以及JBoss)是開源的。所以在技術上你可以用不同的代碼重新編譯它來讀取部署描述符。但是a)你將失去所有的工具支持,因爲沒有IDE會期望這個配置在web.xml中有任何效果(考慮讀取taglibs並指出有問題的JSP),並且b)你會像創建維護噩夢一樣必須爲每個新的Tomcat版本做到這一點,沒有人,但你會期望這種行爲的任何自我尊重的網絡服務器

+0

我有一個應用程序,我想部署到兩個不同的服務器(tomcat 7和jboss as)。所以我想也許我可以用另一個文件在tomcat上以不同的方式進行配置。看到這裏http://stackoverflow.com/questions/15794577/testing-spring-openshift-application-locally – lunr 2013-04-06 15:16:27