2013-04-07 7 views
7

Ich verwende Windows 7, Java 1.7, Grails 2.1.4, Groovy 2.0.4 und Tomcat 7.0.37.
Wenn mein Projekt ausgeführt wird, erhalte ich die Fehler unter:Wie vermeidet man den Fehler "javax.servlet-api-3.0.1.jar - jar nicht geladen"?

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) 

ich verschiedene Versionen von Servlet-api und bcprov-ext-jdk15- * .jar versucht, aber das hat nicht geholfen.

Sollte ich über diesen Fehler besorgt sein?
Wie kann ich es verschwinden lassen?

Antwort

7

Das servlet-api Glas sollte nicht in Ihrem WEB-INF/lib überhaupt sein, wie es vom Behälter zur Verfügung gestellt wird. Die Warnmeldung ist ziemlich explizit - die Servlet-Spezifikation erfordert Container, um alle JAR-Dateien in einer Webanwendung zu ignorieren, die -Klassen enthalten. Sie können diese Nachricht ignorieren.

Die zweite Nachricht über Bouncycastle ist auch wahrscheinlich nicht, was es scheint. Es ist wahrscheinlich ein weiterer Fehler aufgetreten, der dazu führte, dass die Webanwendung nicht korrekt gestartet wurde. Diese Meldung wird angezeigt, wenn etwas anderes versucht, eine Klasse von der bereits heruntergefahrenen Webanwendung zu laden. Überprüfen Sie Ihre anderen Protokolldateien und bearbeiten Sie möglicherweise Ihre log4j-Einstellungen in Config.Groovy, um die Protokollierung ausführlicher zu machen und zu sehen, ob dies den tatsächlichen zugrunde liegenden Fehler anzeigt.

12

Sie einfach eine bereitgestellte Raum für Ihre Abhängigkeit wie folgt verwenden müssen:

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

So ist es nicht mehr in Ihrer WAR/EAR-Datei gepackt werden.