0

I am currently upgrading my application java version from jdk 1.7 to 17 and tomcat from 9.0.20 version to 10.1.7, made all the changes related to servelte libs update and removed all the compilation error but when I am deploying my war I am getting below error.

24-Apr-2023 21:01:50.458 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [C:\Users\absharma\Desktop\TASK\tomcat\webapps\WebApp_demo_version3.war]
24-Apr-2023 21:02:01.488 INFO [Catalina-utility-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
24-Apr-2023 21:02:01.488 SEVERE [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Error deploying web application archive [C:\Users\absharma\Desktop\TASK\tomcat\webapps\WebApp_demo_version3.war]
    java.lang.IllegalStateException: Error starting child
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:686)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:658)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:713)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:975)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1949)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
        at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
        at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:123)
        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:776)
        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1705)
        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:305)
        at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1102)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1301)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1305)
        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1283)
        at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
        at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
        at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.base/java.lang.Thread.run(Thread.java:833)
    Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/WebApp_demo_version3]]
        at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:683)
        ... 24 more
    Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1012)
        at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2487)
        at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:865)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1401)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
        at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:490)
        at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:472)
        at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:142)
        at org.apache.catalina.core.ApplicationContext.addListener(ApplicationContext.java:1010)
        at org.apache.catalina.core.ApplicationContextFacade.addListener(ApplicationContextFacade.java:549)
        at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:90)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4875)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        ... 25 more
    Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletRequestListener
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1437)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1245)
        ... 40 more
24-Apr-2023 21:02:01.496 INFO [Catalina-utility-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [C:\Users\absharma\Desktop\TASK\tomcat\webapps\WebApp_demo_version3.war] has finished in [11,038] ms

whereas I am not even using this servlet package anymore i upgraded to version 6.0.0 which use jakarta.servlet package, any suggestion on same is appreciated.

tried below points.

  • upgraded servlet jar from 2.5 to 6.0.0
  • updated my xml file from web-app_2_5.xsd to web-app_4_0.xsd

I am expecting to upgrade my application to jdk 17 and tomcat 10.1.7.

Abhinav
  • 21
  • 5
  • 1
    Can you add all the stacktrace please – Gatusko Apr 24 '23 at 15:19
  • "upgraded servlet jar": Does that include _all of your code_ that now uses the jakarta variant? And _all of the other external libraries_ that you might have in your project, that might depend on the javax-classes as well? Please check [ask] and provide a [mcve]. – Olaf Kock Apr 24 '23 at 15:38
  • @Gatusko pasted the server logs above. – Abhinav Apr 24 '23 at 15:51
  • I think you are having this issue it is well know https://stackoverflow.com/questions/66711660/tomcat-10-x-throws-java-lang-noclassdeffounderror-on-javax-servlet – Gatusko Apr 24 '23 at 15:53
  • @OlafKock yes, my application is using Jakarta variant now, and rest of the external libs are upgraded too if need in most of the case I tried to do the minimal change in external libs as I am trying to figure out what is causing me this issue, will provide you more info about how to reproduce this issue as I tried something similar with new project containing no external libs and it get deployed fine and I am able to consume the demo webservice as well. – Abhinav Apr 24 '23 at 15:57
  • *"upgraded servlet jar from 2.5 to 6.0.0"* this phrase is scary because **normally** you upgrade merely the servletcontainer (Tomcat) from the one to the other version and not the individual `servlet.jar` file. Do you really have a `servlet.jar` bundled in `/WEB-INF/lib`? This is absolutely not correct. That's supposed to be already provided by the servletcontainer itself (Tomcat in your case). – BalusC Apr 24 '23 at 16:03
  • @BalusC, that true by upgrading servlet jar from 2.5 to 6.0.0 I mean upgrading the servlet container. Thanks for bring this up as I need to edit the scope of my dependency so that it should not be present in /WEB-INF/lib when I am building the project. – Abhinav Apr 25 '23 at 08:42

0 Answers0