You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Christian Hödl <C....@gmx.net> on 2011/04/07 10:44:58 UTC

java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet when embedding tomcat 7.0.11

Hi,
  I'm trying to start Tomcat 7.0.11 from within an automated test.
  Unfortunately, when I call tomcat.start(), the following
  exception happens:

Servlet /abc/ threw load() exception
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1062)
        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4915)
        at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5242)
        at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5237)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)

I am running the test with gradle. This is the runtime classpath, I
think all needed tomcat jars should be on the classpath (especially jasper):

classpath = D:\dev\workspace\gradle_test\test\build\classes\test;D:\dev\workspace\gradle_test\test\build\classes\main;D:
\dev\programs\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-core\jars\tomcat-embed-core-7.0.11.jar;D:\dev\prog
rams\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-logging-juli\jars\tomcat-embed-logging-juli-7.0.11.jar;D:\d
ev\programs\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-jasper\jars\tomcat-embed-jasper-7.0.11.jar;D:\dev\pr
ograms\gradle_cache\cache\org.eclipse.jdt.core.compiler\ecj\jars\ecj-3.6.jar;D:\dev\programs\gradle_cache\cache\junit\ju
nit\jars\junit-4.8.2.jar;D:\dev\programs\gradle_cache\cache\org.spockframework\spock-core\jars\spock-core-0.5-groovy-1.7
.jar;D:\dev\programs\gradle_cache\cache\org.codehaus.groovy\groovy-all\jars\groovy-all-1.7.5.jar;D:\dev\programs\gradle_
cache\cache\junit\junit-dep\jars\junit-dep-4.8.2.jar;D:\dev\programs\gradle_cache\cache\org.hamcrest\hamcrest-core\jars\
hamcrest-core-1.2.jar;D:\dev\programs\gradle_cache\cache\org.scala-tools.testing\specs_2.8.1\jars\specs_2.8.1-1.6.7.2.ja
r;D:\dev\programs\gradle_cache\cache\org.scala-lang\scala-library\jars\scala-library-2.8.1.jar;D:\dev\programs\gradle_ca
che\cache\org.scala-lang\scala-compiler\jars\scala-compiler-2.8.1.jar;D:\dev\programs\gradle_cache\cache\org.scalatest\s
calatest\jars\scalatest-1.3.jar

This is the very simple test (in Scala):

import org.apache.catalina.startup.Tomcat
import java.io.File._
import org.specs._
import org.specs.runner._

class Main extends Specification with ScalaTest {

  "starting the tomcat" should {
        "work" in {
            val contextPath = "/abc/"
            val tomcat = new Tomcat()
            tomcat.setPort(httpPort)
            tomcat.addWebapp(contextPath, "D:\\dev\\workspace\\gradle_test\\build")        
            tomcat.start()
            tomcat.getServer().await()
        }
    }
    
}

Does anybody know, what could be the problem here?

Cheers,
  Christian
-- 
GMX DSL Doppel-Flat ab 19,99 Euro/mtl.! Jetzt mit 
gratis Handy-Flat! http://portal.gmx.net/de/go/dsl

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet when embedding tomcat 7.0.11

Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Christian,

On 4/7/2011 5:24 AM, chrish123 wrote:
> I added tomcat-jsp-api and tomcat-servlet-api to the classpath, it now
> looks like
>   the following:

Please make this mess easier to read in future posts. This is your
CLASSPATH if CACHE_DIR=\dev\programs\gradle_cache\cache:

> CACHE_DIR=\dev\programs\gradle_cache\cache
> 
> D:\dev\workspace\gradle_test\test\build\classes\test
> D:\dev\workspace\gradle_test\test\build\classes\main
> CACHE_DIR\org.apache.tomcat.embed\tomcat-embed-core\jars\tomcat-embed-core-7.0.11.jar
> CACHE_DIR\org.apache.tomcat.embed\tomcat-embed-logging-juli\jars\tomcat-embed-logging-juli-7.0.11.jar
> CACHE_DIR\org.apache.tomcat.embed\tomcat-embed-jasper\jars\tomcat-embed-jasper-7.0.11.jar
> CACHE_DIR\org.apache.tomcat\tomcat-servlet-api\jars\tomcat-servlet-api-7.0.11.jar
> CACHE_DIR\org.apache.tomcat\tomcat-jsp-api\jars\tomcat-jsp-api-7.0.11.jar
> CACHE_DIR\org.apache.tomcat\tomcat-el-api\jars\tomcat-el-api-7.0.11.jar
> CACHE_DIR\junit\junit\jars\junit-4.8.2.jar
> CACHE_DIR\org.spockframework\spock-core\jars\spock-core-0.5-groovy-1.7.jar
> CACHE_DIR\org.codehaus.groovy\groovy-all\jars\groovy-all-1.7.5.jar
> CACHE_DIR\junit\junit-dep\jars\junit-dep-4.8.2.jar
> CACHE_DIR\org.hamcrest\hamcrest-core\jars\hamcrest-core-1.2.jar
> CACHE_DIR\org.scala-tools.testing\specs_2.8.1\jars\specs_2.8.1-1.6.7.2.jar
> CACHE_DIR\org.scala-lang\scala-library\jars\scala-library-2.8.1.jar
> CACHE_DIR\org.scala-lang\scala-compiler\jars\scala-compiler-2.8.1.jar
> CACHE_DIR\org.scalatest\scalatest\jars\scalatest-1.3.jar

You also need Tomcat's jasper.jar file to be in the CLASSPATH.

If you get more CNFE's, just do something like the following to find the
file you are looking for in Tomcat's libraries:

$ jar tvf CATALINA_HOME/lib/jasper.jar | grep JspServlet

On Microsoft Windows, that might be more like:

> jar tvf CATALINA_HOME/lib/jasper.jar | find "JspServlet"

Obviously, you need to search each JAR file for whatever class you are
missing to find it.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2d+/sACgkQ9CaO5/Lv0PDrdwCeO2IBFkNiEPD3Fx73FNLG3FsM
RA8An1Zjod+u6QETbdwmRVBHS3pmqjfX
=N9gQ
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet when embedding tomcat 7.0.11

Posted by chrish123 <c....@gmx.net>.
Hi, 
  thanks for your answer.
  I added tomcat-jsp-api and tomcat-servlet-api to the classpath, it now
looks like
  the following:

classpath =
D:\dev\workspace\gradle_test\test\build\classes\test;D:\dev\workspace\gradle_test\test\build\classes\main;D:
\dev\programs\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-core\jars\tomcat-embed-core-7.0.11.jar;D:\dev\prog
rams\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-logging-juli\jars\tomcat-embed-logging-juli-7.0.11.jar;D:\d
ev\programs\gradle_cache\cache\org.apache.tomcat.embed\tomcat-embed-jasper\jars\tomcat-embed-jasper-7.0.11.jar;D:\dev\pr
ograms\gradle_cache\cache\org.apache.tomcat\tomcat-servlet-api\jars\tomcat-servlet-api-7.0.11.jar;D:\dev\programs\gradle
_cache\cache\org.apache.tomcat\tomcat-jsp-api\jars\tomcat-jsp-api-7.0.11.jar;D:\dev\programs\gradle_cache\cache\org.apac
he.tomcat\tomcat-el-api\jars\tomcat-el-api-7.0.11.jar;D:\dev\programs\gradle_cache\cache\junit\junit\jars\junit-4.8.2.ja
r;D:\dev\programs\gradle_cache\cache\org.spockframework\spock-core\jars\spock-core-0.5-groovy-1.7.jar;D:\dev\programs\gr
adle_cache\cache\org.codehaus.groovy\groovy-all\jars\groovy-all-1.7.5.jar;D:\dev\programs\gradle_cache\cache\junit\junit
-dep\jars\junit-dep-4.8.2.jar;D:\dev\programs\gradle_cache\cache\org.hamcrest\hamcrest-core\jars\hamcrest-core-1.2.jar;D
:\dev\programs\gradle_cache\cache\org.scala-tools.testing\specs_2.8.1\jars\specs_2.8.1-1.6.7.2.jar;D:\dev\programs\gradl
e_cache\cache\org.scala-lang\scala-library\jars\scala-library-2.8.1.jar;D:\dev\programs\gradle_cache\cache\org.scala-lan
g\scala-compiler\jars\scala-compiler-2.8.1.jar;D:\dev\programs\gradle_cache\cache\org.scalatest\scalatest\jars\scalatest
-1.3.jar

But the exception is still there. Any more suggestions?

Regards,
  Christian


Francis Galiegue-4 wrote:
> 
> On Thu, Apr 7, 2011 at 10:44, "Christian Hödl" <C....@gmx.net> wrote:
>> Hi,
>>  I'm trying to start Tomcat 7.0.11 from within an automated test.
>>  Unfortunately, when I call tomcat.start(), the following
>>  exception happens:
>>
>> Servlet /abc/ threw load() exception
>> java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
> [...]
>>
>> classpath =
>> D:\dev\workspace\gradle_test\test\build\classes\test;D:\dev\workspace\gradle_test\test\build\classes\main;D:
> [etc etc]
>>
>> Does anybody know, what could be the problem here?
>>
> 
> There isn't either of jsp-api or servlet-api in your classpath.
> 
> -- 
> Francis Galiegue
> ONE2TEAM
> Ingénieur système
> Mob : +33 (0) 683 877 875
> Tel : +33 (0) 178 945 552
> fge@one2team.com
> 40 avenue Raymond Poincaré
> 75116 Paris
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/java.lang.ClassNotFoundException%3A-org.apache.jasper.servlet.JspServlet-when-embedding-tomcat-7.0.11-tp31340591p31340854.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet when embedding tomcat 7.0.11

Posted by Francis GALIEGUE <fg...@one2team.com>.
On Thu, Apr 7, 2011 at 10:44, "Christian Hödl" <C....@gmx.net> wrote:
> Hi,
>  I'm trying to start Tomcat 7.0.11 from within an automated test.
>  Unfortunately, when I call tomcat.start(), the following
>  exception happens:
>
> Servlet /abc/ threw load() exception
> java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
[...]
>
> classpath = D:\dev\workspace\gradle_test\test\build\classes\test;D:\dev\workspace\gradle_test\test\build\classes\main;D:
[etc etc]
>
> Does anybody know, what could be the problem here?
>

There isn't either of jsp-api or servlet-api in your classpath.

-- 
Francis Galiegue
ONE2TEAM
Ingénieur système
Mob : +33 (0) 683 877 875
Tel : +33 (0) 178 945 552
fge@one2team.com
40 avenue Raymond Poincaré
75116 Paris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org