I am moving an app from tomcat 9.0.100+ to 11.0.5. The conversion tool
worked well and quickly got to a clean compile. At Tomcat.start() I get
a stacktrace mentioning jasper. There are no JSPs in my system:
SEVERE: Servlet [jsp] in web application [/sgs] threw load() exception
java.lang.ClassNotFoundException: org.apache.jasper.servlet.JspServlet
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1225)
at
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1056)
at
org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:474)
at
org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:457)
at
org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:753)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:693)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4177)
at
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4460)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1162)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1158)
at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:81)
at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:714)
at
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:780)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1162)
at
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1158)
at
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at
org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:81)
at
java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:145)
at
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:714)
at
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:201)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at
org.apache.catalina.core.StandardService.startInternal(StandardService.java:410)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:864)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:164)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:435)
at
edu.utah.camplab.server.SGSSelector.kickOff(SGSSelector.java:186)
at edu.utah.camplab.server.SGSSelector.run(SGSSelector.java:198)
at java.base/java.lang.Thread.run(Thread.java:1583)
where lines 186/186 are:
embeddedTomcat.start();
embeddedTomcat.getServer().await();