[英]Jar file failed to load in tomcat webapps
這是我嘗試將 maven 項目部署到 tomcat 時遇到的錯誤
mvn tomcat7:deploy
錯誤 :
INFO: validateJarFile(D:\Softwares\tomcat\apache-tomcat-7.0.50\webapps\myWebApp_
1\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 3.
0, section 10.7.2. Offending class: javax/servlet/Servlet.class
但是 WEB-INF\\lib 中有 javax.servlet-api-3.0.1.jar 謝謝
信息:validateJarFile(D:\\Softwares\\tomcat\\apache-tomcat-7.0.50\\webapps\\myWebApp_1\\WEB-INF\\lib\\javax.servlet-api-3.0.1.jar) - jar 未加載
Servlet3.0 已經在其 lib 文件夾中隨附了 tomcat,默認情況下 tomcat 將始終加載存在於那里的 servlet jar。 這就是為什么你會收到警告,說 tomcat 沒有在項目中加載你的 jar。
簡單的解決方案:如果您使用的是 maven,請將其范圍provided
為 pom.xml 中provided
的內容,maven 不會將其放置在您項目的 WEB-INF/lib 中。 就像是
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0</version>
<scope>provided</scope>
</dependency>
Saif asif 的精確解釋。
我使用 gradle 作為構建工具。 排除tomcat默認提供的tomcat-servlet-api.jar對我有用。
您需要知道您的哪個依賴項正在將 tomcat-servlet-api.jar 添加到 war 中,然后使用以下方法將其排除
compile ('your dependency goes here') {
exclude module:'tomcat-servlet-api'
}
這只是出現在日志中的警告,而不是錯誤。 如果您忽略這一點,您的項目仍將部署。
您可以通過使用 maven 重建 .war 並將其復制到 \\webapps\\ 中刪除舊文件來消除此錯誤。
最佳解決方案:從 lib 中刪除那個 jar(即 javax.servlet-api-3.0.1.jar)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.