J'essaie de créer un service Web et de le déployer sur Tomcat. Je suis ce tutoriel .
J'utilise Eclipse Europa.
Mais lorsque j'essaie de démarrer le serveur, il renvoie cette erreur:
Java.lang.ClassNotFoundException: org.Apache.catalina.core.ThreadLocalLeakPreventionListener
at Java.net.URLClassLoader$1.run(URLClassLoader.Java:217)
at Java.security.AccessController.doPrivileged(Native Method)
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:205)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:321)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:266)
at org.Apache.Tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.Java:205)
at org.Apache.Tomcat.util.digester.Rule.begin(Rule.Java:153)
at org.Apache.Tomcat.util.digester.Digester.startElement(Digester.Java:1356)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.Java:504)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.Java:182)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.Java:1320)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.Java:2732)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.Java:625)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.Java:488)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:812)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:741)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(XMLParser.Java:123)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.Java:1208)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.Java:525)
at org.Apache.Tomcat.util.digester.Digester.parse(Digester.Java:1642)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:524)
at org.Apache.catalina.startup.Catalina.load(Catalina.Java:562)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:616)
at org.Apache.catalina.startup.Bootstrap.load(Bootstrap.Java:262)
at org.Apache.catalina.startup.Bootstrap.main(Bootstrap.Java:430)
La ThreadLocalLeakPreventionListener
a été ajoutée récemment à Tomcat. Il est disponible dans Tomcat 7 ainsi que dans les versions les plus récentes de Tomcat 6. Assurez-vous de disposer de la dernière version de Tomcat 6, avec une installation propre (votre installation peut contenir le server.xml
de la nouvelle version et les fichiers jar de )
même si je faisais face au même problème. Ce que vous devez faire est d'aller dans l'onglet Serveurs, cliquer avec le bouton gauche sur le serveur Apache et cliquer sur les propriétés. Vous pouvez y voir Emplacement pointant vers [métadonnées de l'espace de travail]. Cliquez sur Changer de lieu. Il passera à l'emplacement Apache/Servers/Tomcat xxx.Appliquez les modifications et enregistrez.
Votre fichier web.xml contient une entrée pour un écouteur dont le code a été ajouté à partir de Tomcat 7.0.6, mais votre Tomcat est plus ancien que cela -
org.Apache.catalina.core.ThreadLocalLeakPreventionListener
Si vous utilisez la classe dans server.xml, vous devez la supprimer pour supprimer l'erreur/l'exception.
<Listener
className="org.Apache.catalina.core.ThreadLocalLeakPreventionListener"/>