我开发了一个带有Spring Boot的webapp并生成了WAR。 在生成战争之前,我已经遵循this指令。我在Tomcat 7.0.52中部署它,但我明白了:
信息: validateJarFile(/opt/devel/server/apache-tomcat-7.0.52/webapps/myapp/WEB-INF/lib/tomcat-embed-el-8.0.32.jar) - jar没装。请参见Servlet规范3.0,第10.7.2节。违规类:javax / el / Expression.class 2016-04-19 11:48:28.579 WARN 27983 --- [io-8080-exec-14] org.apache.catalina.deploy.WebXml:未知版本字符串[3.1]。将使用默认版本。
我认为这是由于servlet规范版本,但在上面的链接中说它支持3.0以及3.1(Tomcat 8)。如果我在Tomcat 8中部署我的应用程序,一切正常。
感谢。
答案 0 :(得分:4)
正如M. Deinum所提到的,Tomcat 7正在使用3.0.x servet API。 Spring Boot默认使用3.1。要更改它,如果您使用旧的servlet和tomcat API,Spring Boot会理解这些Maven属性:
<properties>
<tomcat.version>7.0.69</tomcat.version>
<servlet-api.version>3.0.1</servlet-api.version>
</properties>