2014-07-21 35 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 –

相关问题