2014-07-21 37 views
0

我的應用程序當前使用servlet-api.jar版本2.4進行編譯。
該jar與代碼一起打包並部署在tomcat服務器上。
web.xml中也有相同的版本即使我實際使用Servlet-api jar版本3.0,我是否可以保留web.xml 2.4版本

<web-app id="WebApp_ID" version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 

但現在,我們已經部署了代碼的Tomcat是升級到servlet的api.jar文件版本3.0。

而且我們需要停止將jar與我們的代碼捆綁在一起,而是使用tomcat提供的jar。

我想知道:

1)我能保持完整的web.xml(即沒有提及3.0),只有改變的pom.xml編譯使用3.0的代碼?會不會對應用程序運行產生影響?


[參考文獻1] java, tomcat: what is the meaning of the id attribute in the tag web-app in web.xml?
[參考文獻2] http://docs.oracle.com/cd/E13222_01/wls/docs100/webapp/web_xml.html
[參考文獻3] Java web app - What determines my Servlet API version? Does it get specified in web.xml?

回答

1

servlet規範是向後兼容的,所以一個2.4 web應用程序應以3.0容器中運行,並且您可以繼續對Servlet 2.4 API編譯您的應用程序,並在部署到3.0容器時將web.xml保持不變。

你應該從來沒有在WAR中打包一個servlet API jar。在運行時,應用程序將始終使用容器提供的API和實現。

關於Tomcat升級,我想你的意思是說你的安裝是從Tomcat 5.x(?)(基於Servlet 2.4)升級到Tomcat 7.x(基於Servlet 3.0)。

只需在舊的Tomcat安裝中升級servlet API jar不是一個好主意......

+0

你是對的。我們不打算將jar與代碼捆綁在一起。它將由容器提供。 是的,它是Tomcat 7.0 –

相關問題