2013-04-07 6 views
7

私はWindows 7、Java 1.7、Grails 2.1.4、Groovy 2.0.4、Tomcat 7.0.37を使用しています。私は、サーブレットAPIとbcprov-EXT-jdk15- *の.jarの異なるバージョンを試してみましたが、それは助けにはならなかった「javax.servlet-api-3.0.1.jar-jarがロードされていません」というエラーを回避する方法は?

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) 

:私のプロジェクトを実行すると
は、私は以下のエラーを取得します。

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

答えて

7

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

bouncycastleに関する2番目のメッセージは、おそらくそれが思われないものです。 webappが正しく起動しない原因となった別のエラーがありました。このメッセージは、既にシャットダウンされているWebアプリケーションからクラスを読み込もうとしたときに表示されます。他のログファイルをチェックし、Config.groovyのlog4j設定を編集してロギングをより冗長にして、それが実際の根本的なエラーを示しているかどうかを確認してください。

12

あなたは、単に次のようなあなたの依存関係のために提供スコープを使用する必要があります。

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

だから、それはもはやあなたのWAR/EARファイルにパッケージ化しません。

関連する問題