web-dev-qa-db-ja.com

JarファイルはTomcat webappsでロードできませんでした

これは、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にあります

24
Rajashekhar

情報: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>
46
Saif Asif

Saif asifによる正確な説明。

私はビルドツールとしてgradleを使用していました。 Tomcatによってデフォルトで提供されるTomcat-servlet-api.jarを除外することは私にとってはうまくいきました。

どの依存関係が推移的にTomcat-servlet-api.jarをwarに追加しているかを知り、次を使用してそれを除外する必要があります

 compile ('your dependency goes here') {
        exclude module:'Tomcat-servlet-api'
    }
2
Sanjay Bharwani

これはログに表示される単なる警告であり、エラーではありません。これを無視すると、プロジェクトは引き続きデプロイされます。

このエラーを取り除くには、mavenを使用して.warを再構築し、古いファイルを削除して\ webapps \にコピーします。

1
Tim