2011-07-02 14 views
10

Próbuję utworzyć usługę sieci Web i udostępnić ją na serwerze Tomcat. Śledzę this tutorial.java.lang.ClassNotFoundException: org.apache.catalina.core.ThreadLocalLeakPreventionListener

Używam Eclipse Europa.

Ale gdy próbuję uruchomić serwer powraca ten błąd:

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) 

Odpowiedz

15

ThreadLocalLeakPreventionListener niedawno został dodany do Tomcat. Jest on dostępny w tomcat 7, a także w najnowszej wersji tomcat 6. Upewnij się, że masz najnowszy tomcat 6, z czystą instalacją (twoja instalacja może mieć server.xml z nowej wersji i słoiki ze starszej wersji)

+0

Nie widzę tej klasy w Tomcat 6.0.35 (najnowsze 6). Jest obecny w 7. –

+0

Nie w wersji 6.0.45. – michaelok

+0

Nie działa dla mnie. Te opcje zostały wyłączone. Dlatego usunąłem serwer z zakładki Serwer i dodałem ponownie przy pomocy Kreatora nowego serwera i działało. :) –

0

Twój web.xml zawiera wpis dla słuchacza, którego kod został dodany w Tomcat 7.0.6 i dalej, ale twój kocur jest starszy niż -

org.apache.catalina.core.ThreadLocalLeakPreventionListener

1

Nawet ja stawiam czoła temu samemu problemowi. Co musisz zrobić, przejdź do zakładki serwerów i kliknij lewym przyciskiem na serwerze Apache i kliknij właściwości. Tam możesz zobaczyć Lokalizacja wskazując [metadane obszaru roboczego]. Kliknij przełącznik Lokalizacja. Przejdzie do lokalizacji Apache/Servers/Tomcat xxx. Zastosuj zmiany i zapisz.

0

Jeśli używasz klasy w pliku server.xml, musisz ją usunąć, aby pozbyć się błędu/wyjątku.

<Listener 
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener"/> 
Powiązane problemy