2012-12-04 13 views
6

Walczę przez cały dzień z tym: Mam DynamicWebProject. Wszystko działało dobrze. Ale w pewnym momencie postanowiłem oczyścić dodatkowy słoik, który nie został użyty w projekcie. Po czyszczeniu mam kilka błędów. Więc wycofuję wszystkie moje zmiany (mam na myśli, że wycofałem wszystkie słoiki z powrotem). Ale także grałem z Build Path projektu, Eclipse, konfiguracji Debugowania. Niestety nie zapamiętałem tych zmian (z rzeczami Path). A kiedy biegnę na serwerze Tomcat mi pokazuje to:Po uruchomieniu na serwerze Eclipse - Tomcat - java.lang.NoClassDefFoundError: javax/servlet/ServletConfig

`

04.12.2012 16:37:43 org.apache.catalina.core.ApplicationContext log 
SEVERE: StandardWrapper.Throwable 
java.lang.NoClassDefFoundError: javax/servlet/ServletConfig 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:103) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
04.12.2012 16:37:43 org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet /library threw load() exception 
java.lang.NoClassDefFoundError: javax/servlet/ServletConfig 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.<init>(WarBasedAxisConfigurator.java:103) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1266) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5027) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5314) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
04.12.2012 16:37:43 org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["http-bio-8080"] 
04.12.2012 16:37:43 org.apache.coyote.AbstractProtocol start 
INFO: Starting ProtocolHandler ["ajp-bio-8009"] 
04.12.2012 16:37:43 org.apache.catalina.startup.Catalina start 
INFO: Server startup in 3556 ms 

`

jestem prawdziwym powiązana z tej niekończącej się walki. Co robię źle? Co Eclipse i Tomcat próbują mi powiedzieć?


Gotowe.

So. Jak przywrócić funkcjonalność. Przede wszystkim mój projekt był kopią zapasową w repozytorium SVN. Następnie tworzę nowy Workspace w Eclipse. nowy obszar roboczy w innym folderze. I projekt kasy od SVN. Po tym, w kroku - uruchom na serwerze, złapałem błędy i dodałem jedną po drugiej pominięte biblioteki (słoiki). I whoa-la, to działa! Więc jak pomyślałem, problem tkwi w konfiguracji eclipce i projektu, także w konfiguracji Run/Debug. Jak znaleźć błędy w konfiguracji, nie wiem :(ale spróbuję na starej pracy.

+0

Czy możesz przesłać swój plik konfiguracyjny serwletu? –

+0

Naprawdę nie używam żadnych serwletów. Chyba ten serwlet dla osi 2. Nic w nim nie zmieniłem. – miroque

+0

Czy sprawdzasz, czy wszystkie wymagane słoiki są obecne w $ CALINICA_HOME/lib? –

Odpowiedz

8

Brakuje servlet-api.jar w ścieżce klasy. Sprawdź to

AKTUALIZACJA

1) Right click on project 
2) Got to java build path 
3) Click on add library in right hand side. 
4) Choose server run time. 
5) Click next and select your tom cat server. 
6) Click on finish. 

enter image description here

Następnie spróbuj ponownie

+0

Tak, w moich poszukiwaniach znalazłem, że ten błąd może być z serwerem-api.jar Ale gdzie go napisać? Używam Eclipse. w DynWebProj dostępne są JavaResources-> Libraries-> ApacheTomcatv7.0 - servlet-api.jar. Kiedy próbuję napisać ten słoik w "Konfiguracjach debugowania ...", dostaję więcej błędów. – miroque

+0

Sprawdź moje zaktualizowane części. – Suranga

+0

Nie. Zrobiłem to. Ale jest taki sam warunek :(Ale może to daje trochę add.info 'INFO: Tworzenie instancji SecureRandom do generowania identyfikatorów sesji za pomocą [SHA1PRNG] zajęło [718] milisekund. 2012-12-04 17: 29: 10,067 [WARN ] [host-startStop-1] [. transport.http.AxisAdminServlet] - aplikacja internetowa używa pliku org.apache.axis2.transport.http.AxisAdminServlet; należy zaktualizować plik web.xml, aby zamiast niego użyć pliku org.apache.axis2.webapp.AxisAdminServlet: 04.12.2012 17:29:10 org.apache.catalina.core.ApplicationContext log POWAŻNE: StandardWrapper.Throwable java.lang.NoClassDefFoundError: javax/servlet/ServletConfig' – miroque

1

przejdź do Java Build Path, przejdź do Libraries kliknij Add Library, wybierz opcję Server Runtime, kliknij opcję Next, wybierz serwer WWW i kliknij przycisk Zakończ. Wyczyść i wdróż, aby sprawdzić, czy działa.

+0

Tak , zrobiłem to jak w odpowiedzi przedwczesnej. A także czysty projekt, czysty katalog roboczy tomcat. problem nie zniknął. Może podwoiłem trochę słoika? – miroque

+0

Możesz użyć 'Ctrl' +' Shift' + 't' i wpisać javax.servlet.ServletConfig, aby sprawdzić, czy dodano jakieś duplikaty słoików. Po prostu zachowaj tę bibliotekę środowiska wykonawczego i usuń inną bibliotekę/słoik, który dostarczył tę klasę i spróbuj raz. –

+0

Podoba mi się ta kombinacja klawiszy skrótu. Ale pokazuje (javax.servlet.ServletConfig) tylko raz. Więc nie wiem, czy podwaja się gdzieś. – miroque

Powiązane problemy