2012-05-08 16 views
9

Bazı servletler yazmak için çalışıyordum ve hepsi iyi çalıştı Tomcat, hiç bu kadar koşma sorunu yoktu. Sonra JERSEY kullanılan bir sınıf dosyası yazdım ve çalıştırmayı denediğimde Tomcat başlamıyordu. Ben Web geliştirme araçları Eclipse yüklü takın var, vuruldum her şey Java.Lang.ClassNotFoundExceptionjava.lang.ClassNotFoundException: javax.servlet.ServletContainerInitializer

olsun derlemek: İşte javax.servlet.ServletContainerInitializer

konsoldan çıkışı

May 08, 2012 4:51:36 PM org.apache.catalina.core.AprLifecycleListener init 
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre7\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files (x86)/Java/jre7/bin/client;C:/Program Files (x86)/Java/jre7/bin;C:/Program Files (x86)/Java/jre7/lib/i386;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files\TortoiseSVN\bin;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\bin\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools;C:\Windows\Microsoft.NET\Framework\v3.5;C:\Windows\Microsoft.NET\Framework\v2.0.50727;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCPackages;C:\Python27\Scripts;C:\Program Files (x86)\SSH Communications Security\SSH Tectia\SSH Tectia AUX;C:\Program Files (x86)\SSH Communications Security\SSH Tectia\SSH Tectia AUX\Support binaries;C:\Program Files (x86)\SSH Communications Security\SSH Tectia\SSH Tectia Broker;C:\Program Files (x86)\SSH Communications Security\SSH Tectia\SSH Tectia Client;C:\Program Files\CREDANT\Shield v7.1\;C:\Development Tools\java\eclipse;;. 
May 08, 2012 4:51:36 PM org.apache.tomcat.util.digester.SetPropertiesRule begin 
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:Test_Server' did not find a matching property. 
May 08, 2012 4:51:37 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["http-bio-80"] 
May 08, 2012 4:51:37 PM org.apache.coyote.AbstractProtocol init 
INFO: Initializing ProtocolHandler ["ajp-bio-8009"] 
May 08, 2012 4:51:37 PM org.apache.catalina.startup.Catalina load 
INFO: Initialization processed in 546 ms 
May 08, 2012 4:51:37 PM org.apache.catalina.core.StandardService startInternal 
INFO: Starting service Catalina 
May 08, 2012 4:51:37 PM org.apache.catalina.core.StandardEngine startInternal 
INFO: Starting Servlet Engine: Apache Tomcat/7.0.27 
May 08, 2012 4:51:37 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Test_Server]] 
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Test_Server]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    ... 7 more 
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContainerInitializer 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(Unknown Source) 
    at java.security.SecureClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.defineClass(Unknown Source) 
    at java.net.URLClassLoader.access$100(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1626) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1556) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Unknown Source) 
    at org.apache.catalina.startup.ContextConfig.getServletContainerInitializer(ContextConfig.java:1601) 
    at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1519) 
    at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1222) 
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:345) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5161) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 7 more 
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContainerInitializer 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 33 more 

May 08, 2012 4:51:37 PM org.apache.catalina.core.ContainerBase startInternal 
SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
    at java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) 
    at java.util.concurrent.FutureTask.get(Unknown Source) 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1128) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:675) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136) 
    at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 7 more 

May 08, 2012 4:51:37 PM org.apache.catalina.startup.Catalina start 
SEVERE: Catalina.start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.startup.Catalina.start(Catalina.java:675) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:322) 
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450) 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 7 more 
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]] 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) 
    at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 9 more 
Caused by: org.apache.catalina.LifecycleException: A child container failed during start 
    at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1136) 
    at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:302) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    ... 11 more 

May 08, 2012 4:51:37 PM org.apache.catalina.startup.Catalina start 
INFO: Server startup in 416 ms 

Bu nasıl oluşur ve nasıl çözebilirim?

+1

sizin web.xml servlet spec hangi sürümünü beyan geliyor? – Jeremy

+0

tomcat sürüm 7.0.27 ve web xml servlet sürüm = 3.0 – cyberbemon

+0

Belki de sınıf yolunda 3.0'dan daha düşük bir servlet kavanozu var mı? – Jeremy

cevap

9

javax/servlet/ServletContainerInitializer Muhtemelen servlet.jar senin CLASSPATH'e yerde yüzen sahip

Tomcat 6. destek değil Servlet 3.0 bir sınıftır, bu olmamalıdır. Bu, Tomcat'ın sınıf yükleyicilerinin bekledikleri kadar normal davranmadıklarından (yukarıdaki bağlantılara bakınız) beri, sınıf yükleyicilerini gerçekten karıştırıyor. servlet.jar yalnızca $CATALINA_HOME/lib'da yalnızca bir kez bulunmalıdır.

+0

Tomcat 7.027 kullanıyorum ve '/ lib' klasöründe yalnızca bir' servlet-api.jar' dosyası var. Herşeyi yeniden kurdum jre, tomcat, eclipse Şu anki problemi çözmüş gibi görünüyor! – cyberbemon

5

Bazen, Eclipse'de bir Tomcat sunucusunu çalıştırıyorsanız, yerel Tomcat çalışma dizini kandırılabilir ve açık bir şekilde temizlemeniz gerekir. Sunucular penceresinden: Bu projede Temiz yapı yapmanın aynı DEĞİLDİR unutmayın Sağ Tamam> Temiz Tomcat çalışma Directory Başlat-çalıştığınız sunucu üzerinde

0

basit ...-> tıklayın tomcat sunucusuna sağ tıkladıktan sonra tomcat çalışma dizinini temizleyin ve ardından tomcat'i temizleyin. Çalışacak.

-1

Bugün de aynı sorunu yaşıyorum. Sonunda, bir kullanıcı kitaplığının boş olduğu ortaya çıktı. Ancak, gösterilen hata mesajı bu konuda herhangi bir ipucu vermedi.

0

Geç bir yanıt ancak bu birisine yardımcı olabilir.

Bunun, Jersey'in daha yeni bir java sürümü kullanılarak oluşturulduğu ve bunu java'nın eski bir sürümünde çalıştırmaya çalıştığınız için olduğuna inanıyorum. Java sürümünüzü güncelleyin veya java sürümünüzü destekleyen eski bir Jersey sürümünü indirin. Jersey belgelerine

Window -> Preferences -> Java -> Compiler -> set "Compiler compliance level" to 1.7. 

:

Until version 2.6, Jersey was compiled with Java SE 6. This has changes in Jersey 2.7. 
Now almost all Jersey components are compiled with Java SE 7 target. It means, that 
you will need at least Java SE 7 to be able to compile and run your application 
that is using latest Jersey. Only core-common and core-client modules are still 
compiled with Java class version runnable with Java SE 6. 
İlgili konular