Java.lang.ClassNotFoundException: org.apache.catalina.core.ThreadLocalLeakPreventionListener
Я пытаюсь создать веб-сервис и объявить его на Tomcat. Я следую этот учебник.
Я использую Eclipse Europa.
Но когда я пытаюсь запустить сервер, он возвращает эту ошибку:
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)
Ответы
Ответ 1
Недавно был добавлен ThreadLocalLeakPreventionListener
в tomcat. Он доступен в tomcat 7, а также в последней версии tomcat 6. Убедитесь, что у вас есть последний tomcat 6 с чистой установкой (ваша установка может иметь server.xml
из новой версии и банки из старше)
Ответ 2
даже я столкнулся с той же проблемой. Что вам нужно сделать, перейдите на вкладку серверов и щелкните левой кнопкой мыши на сервере Apache и щелкните по свойствам. Там вы можете увидеть местоположение, указывающее на [метаданные рабочей области]. Нажмите на местоположение переключателя. Он переключится на местоположение Apache/Servers/Tomcat xxx. Примените изменения и сохраните.
Ответ 3
В вашем web.xml содержится запись для слушателя, код которого был добавлен в Tomcat 7.0.6 и далее, но ваш tomcat старше этого -
org.apache.catalina.core.ThreadLocalLeakPreventionListener
Ответ 4
Если вы используете класс в файле server.xml, вам нужно удалить его, чтобы избавиться от ошибки/исключения.
<Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/>