Tomcat 7 - impossible de charger la classe X des avertissements
Dernièrement, j'ai remarqué que, après le déploiement d'une application web Tomcat 7 à partir d'Eclipse, je suis de+ de 30 mises en garde dans le Catalina fichier journal qui présente l'aspect suivant:
Oct 17, 2011 3:33:47 PM org.apache.catalina.de démarrage.ContextConfig
checkHandlesTypes AVERTISSEMENT: Impossible de charger la classe
[com.soleil.codemodel.JArrayClass$1] pour vérifier contre l' @HandlesTypes
l'annotation d'un ou de plusieurs ServletContentInitializers.
java.lang.ClassNotFoundException: com.soleil.codemodel.JArrayClass 1$à
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
au
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
au
org.apache.catalina.de démarrage.ContextConfig.checkHandlesTypes(ContextConfig.java:1969)
au
org.apache.catalina.de démarrage.ContextConfig.processAnnotationsStream(ContextConfig.java:1932)
au
org.apache.catalina.de démarrage.ContextConfig.processAnnotationsJar(ContextConfig.java:1826)
au
org.apache.catalina.de démarrage.ContextConfig.processAnnotationsUrl(ContextConfig.java:1785)
au
org.apache.catalina.de démarrage.ContextConfig.processAnnotations(ContextConfig.java:1771)
au
org.apache.catalina.de démarrage.ContextConfig.webConfig(ContextConfig.java:1254)
au
org.apache.catalina.de démarrage.ContextConfig.configureStart(ContextConfig.java:881)
au
org.apache.catalina.de démarrage.ContextConfig.lifecycleEvent(ContextConfig.java:316)
au
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
au
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
au
org.apache.catalina.de base.StandardContext.startInternal(StandardContext.java:5103)
au
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
au
org.apache.catalina.de base.ContainerBase.addChildInternal(ContainerBase.java:812)
au
org.apache.catalina.de base.ContainerBase.addChild(ContainerBase.java:787)
au
org.apache.catalina.de base.StandardHost.addChild(StandardHost.java:607)
au
org.apache.catalina.de démarrage.HostConfig.deployWAR(HostConfig.java:932)
au
org.apache.catalina.de démarrage.HostConfig.deployWARs(HostConfig.java:723)
au
org.apache.catalina.de démarrage.HostConfig.deployApps(HostConfig.java:470)
au org.apache.catalina.de démarrage.HostConfig.start(HostConfig.java:1322)
au
org.apache.catalina.de démarrage.HostConfig.lifecycleEvent(HostConfig.java:311)
au
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
au
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
au
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:379)
au
org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:324)
au
org.apache.catalina.de base.ContainerBase.startInternal(ContainerBase.java:1041)
au
org.apache.catalina.de base.StandardHost.startInternal(StandardHost.java:774)
au
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
au
org.apache.catalina.de base.ContainerBase.startInternal(ContainerBase.java:1033)
au
org.apache.catalina.de base.StandardEngine.startInternal(StandardEngine.java:291)
au
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
au
org.apache.catalina.de base.StandardService.startInternal(StandardService.java:443)
au
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
au
org.apache.catalina.de base.StandardServer.startInternal(StandardServer.java:727)
au
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
au org.apache.catalina.de démarrage.Catalina.start(Catalina.java:620) à
soleil.de réfléchir.NativeMethodAccessorImpl.invoke0(Native method) at
soleil.de réfléchir.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
au
soleil.de réfléchir.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
à java.lang.de réfléchir.La méthode.invoke(la Méthode.java:597) à
org.apache.catalina.de démarrage.Bootstrap.démarrer ("Bootstrap".java:303) à
org.apache.catalina.de démarrage.Bootstrap.principal ("Bootstrap".java:431)
L'application fonctionne toujours très bien, c'est juste une douleur d'avoir à faire défiler le passé toutes ces mises en garde pour obtenir de débogage lignes. Aucune idée sur comment résoudre ces avertissements?
OriginalL'auteur Brian | 2011-10-17
Vous devez vous connecter pour publier un commentaire.
S'avère que le jaxb-xjc.jar n'était pas nécessaire pour le déploiement, donc j'ai juste fini de le retirer du classpath qui a fini par se débarrasser de tous les messages d'avertissement.
OriginalL'auteur Brian
La suite à un post sur un forum aussi décrit un problème qui se produit lors de l'utilisation de Métro 2.1.1 avec Servlet 3.0 WebApps - peut aussi être utile:
http://www.java.net/forum/topic/glassfish/metro-and-jaxb/metro-211-and-servlet-version-30-tomcat-many-startup-errors
metadata-complete="true"
à la<web-app />
balise web.xml) a travaillé pour moi!ajouter des métadonnées complètes="true" à la <web-app /> tag web.xml a fonctionné pour moi aussi.
OriginalL'auteur Philip Helger
Vérifier vos dépendances. Un (ou plusieurs) d'entre eux contiennent des
META-INF/services/javax.servlet.ServletContainerInitializer
fichier. Ce fichier contient les noms de classe de typeServletContainerInitializer
.ServletContainerInitializer
s ont généralement@HandlesTypes
annotation qui se réfère classes. L'une des classes les importations/utilisationcom.sun.codemodel.JArrayClass
qui n'est pas sur votre webapp du classpath.Cette question pourrait également être utile: La classe de mise en œuvre de ServletContainerInitializer dans web.xml
J'ai vérifié mon classpath et j'ai inclus le fichier JAR jaxb-xjc qui contient com.soleil.codemodel.JArrayClass. Je suis à l'aide d'Eclipse (Indigo) de compiler et de colis dans tout copier sur d'Tomcat. Il ressemble à l'erreur n'a qu'à faire avec Servlet 3.0, car si je change mon web.xml webapp version 2.5 je n'ai pas les mises en garde plus.
ServletContainerInitializer
a été introduit dans le Servlet/webapp 3.0. Dans 2.5 ils ne sont pas utilisés et votreMETA-INF/services/javax.servlet.ServletContainerInitializer
fichier est ignoré par Tomcat afin de ne pas jeter l'exception.OriginalL'auteur palacsint
J'ai connu le même problème avec la version de tomcat 7.0.23. Je n'ai pas remarqué ce problème, après je suis passé à Tomcat 7.0.33.
Même quand je viens de remplacer ${tomcat.dir}/lib/*bocaux les bocaux de la dernière tomcat, le problème a été résolu.
Sinon, si ça aide
deux autres solutions de travail
ou
OriginalL'auteur Manish Mulani