7

Windows 7、Java 1.7、Grails 2.1.4、Groovy 2.0.4、および Tomcat 7.0.37 を使用しています。
プロジェクトを実行すると、次のエラーが表示されます。

Apr 5, 2013 11:08:00 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
    INFO: validateJarFile(/software/apache-tomcat-7.0.37/webapps/aaaportal-0.1/WEB-INF/lib/javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
    Apr 5, 2013 11:08:13 AM org.apache.catalina.loader.WebappClassLoader loadClass
    INFO: Illegal access: this web application instance has been stopped already.  Could not load org.bouncycastle.jce.provider.JDKKeyPairGenerator$RSABeanInfo.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
    java.lang.IllegalStateException
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1599)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1558)
        at java.beans.Introspector.instantiate(Introspector.java:1444)
        at java.beans.Introspector.findExplicitBeanInfo(Introspector.java:428)
        at java.beans.Introspector.<init>(Introspector.java:377)
        at java.beans.Introspector.getBeanInfo(Introspector.java:164)
        at groovy.lang.MetaClassImpl$15.run(MetaClassImpl.java:2948)

異なるバージョンの servlet-api と bcprov-ext-jdk15- * .jar を試しましたが、役に立ちませんでした。

このエラーについて心配する必要がありますか?
どうすれば消えますか?

4

2 に答える 2

12

次のように、依存関係に提供されたスコープを使用するだけです。

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.0.1</version>
  <scope>provided</scope>
</dependency> 

そのため、WAR/EAR ファイルにパッケージ化されなくなります。

于 2013-04-09T10:59:44.340 に答える
8

jarはservlet-apiコンテナーによって提供されるため、WEB-INF/lib にはまったく配置しないでください。警告メッセージは非常に明確です。サーブレットの仕様では、クラスを含む webapp 内のすべての jar ファイルをコンテナーが無視する必要があります。javax.servletそのメッセージは無視しても問題ありません。

bouncycastle に関する 2 番目のメッセージも、見た目とは異なる可能性があります。Web アプリケーションが正しく起動しない原因となった別のエラーが発生した可能性があります。このメッセージは、既にシャットダウンされている Web アプリケーションからクラスをロードしようとしたときに表示されます。他のログ ファイルを確認し、場合によっては Config.groovy の log4j 設定を編集してログをより詳細にし、それが実際の根本的なエラーを示しているかどうかを確認します。

于 2013-04-07T10:33:06.737 に答える