これは、mavenプロジェクトをTomcatにデプロイしようとしたときに取得したエラーですmvn Tomcat7:deploy Error:INFO:validateJarFile(D:\ Softwares\Tomcat\Apache-Tomcat-7.0。 50\webapps\myWebApp_ 1\WEB-INF\lib\javax.servlet-api-3.0.1.jar)-jarがロードされていません。サーブレット仕様3. 0、セクション10.7.2を参照してください。違反クラス:javax/servlet/Servlet .class
しかし、javax.servlet-api-3.0.1.jarはWEB-INF\libにあります
情報: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は常にそこにあるサーブレットjarをロードします。これが、Tomcatがプロジェクト内にjarをロードしていないという警告を受け取っている理由です。
簡単な解決策:mavenを使用している場合、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 \にコピーします。