簡體   English   中英

Jar 文件無法在 tomcat webapps 中加載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM