Avatar billede esbenp Nybegynder
02. marts 2006 - 20:04 Der er 5 kommentarer

Tomcat kan ikke finde klasse

Jeg har lavet en (minimal) servlet som virker udemærket i en tomcat startet fra eclipse med sysdeo. Ved hjælp af subversion bliver min context så kopieret over på en produktions server når jeg så prøver kalder min servlet får jeg følgende fejl:

javax.servlet.ServletException: Wrapper cannot find servlet class destination.S1 or a class it depends on
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    java.lang.Thread.run(Thread.java:595)


root cause

java.lang.ClassNotFoundException: destination.S1
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1352)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1198)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
    org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    java.lang.Thread.run(Thread.java:595)

Der er tale om en tomcat 5.5 på en windows 2003 med jdk 1.5_06

Bemærk det er kun .java filen til min servlet der bliver kopieret over. Problemet er tilsyneladende at tomcat ikke kan kompilere sourcen.

/Esben
Avatar billede arne_v Ekspert
02. marts 2006 - 20:07 #1
Tomcat compiler kun JSP sider - ikke servlets og bean klasser

jeg vil KLART anbefale at bygge en war og deploye den baade til test og produktion
Avatar billede esbenp Nybegynder
02. marts 2006 - 20:43 #2
Det virker umildbart mere simplet at lave et check out for at deplyoe ændringer. Det er også det folkene bag tomcat anbefaler. En løsning på problemet kunne være at lægge .class filerne i subversion hvilket dog er lidt grimt synes jeg.

Hvilke fordele har en war?

/Esben
Avatar billede arne_v Ekspert
02. marts 2006 - 20:46 #3
fordelen er at du kun deployer en fil

og at det virker med alle servere (det er ikke servere hvor man kan deploye
enkelt filer)
Avatar billede arne_v Ekspert
02. marts 2006 - 20:47 #4
Avatar billede esbenp Nybegynder
02. marts 2006 - 22:21 #5
Problemet var at eclipse havde lagt for 7Mb libs ind i min war så jeg var ikke meget for at uploade så meget hver gang. Nu er de libs blevet flyttet til shared, men jeg holder mig stadig til at deploye fra svn og har så lavet et lille build script

/Esben
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester