[ 
https://issues.apache.org/jira/browse/MNG-7300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17427631#comment-17427631
 ] 

Michael Osipov commented on MNG-7300:
-------------------------------------

[~malvarezdiaz], thanks. The confirmation for PR #578 is enough for now!

> Reloading web application (Enter) fails due to 
> java.lang.ClassNotFoundException
> -------------------------------------------------------------------------------
>
>                 Key: MNG-7300
>                 URL: https://issues.apache.org/jira/browse/MNG-7300
>             Project: Maven
>          Issue Type: Bug
>          Components: Class Loading, Core
>    Affects Versions: 3.8.2, 3.8.3
>         Environment: Apply to all environments
>            Reporter: Manuel Álvarez Díaz
>            Assignee: Michael Osipov
>            Priority: Major
>              Labels: class_loader, modules, multiple, restart
>             Fix For: 4.0.x-candidate, 3.8.x-candidate
>
>         Attachments: test-project.zip
>
>
> Reloading a web application with maven-jetty-plugin 9.4.43.v20210629, 
> 9.4.44.v20210927 or 11.0.6 (at least) is failing when executing with apache 
> maven 3.8.2 or 3.8.3, but it worked fine with maven 3.8.1.
> Error is different with maven-jetty-plugin 9.x vs 11.x ,but in both cases, 
> the base error is due to java.lang.ClassNotFoundException error (different 
> classes in each case, but classes which can be correctly loaded with starting 
> the web context the first time). Error occurs when ENTER (default key for web 
> context restart) is typed.
> NOTE: I had created an incidence for the jetty plugin (see 
> [6977|https://github.com/eclipse/jetty.project/issues/6977]) but after 
> analyzing it, it was closed pointing to a core issue.
>  
> *Steps to reproduce:*
> I have attached a simple Apache Maven project with two submodules presenting 
> the fail in a very simple scenario:
>  * Subsytem test-project-util defines a class extending HttpServlet
>  * Subsystem test-project-service defines a class HelloServlet extending the 
> class in the test-project-util subsystem
> NOTE: In the jax-rs project, error is different, but probably the cause is 
> the same.
> Steps to reproduce the issue:
>  * unzip test-project.zip file
>  * cd test-project
>  * mvn install
>  * cd test-project-service
>  * mvn jetty:run
>  * ENTER (to reload application)
> After this, the following exception is raised
>  
> {{[INFO] restarting o.e.j.m.p.JettyWebAppContext@55fee662\{WS Test 
> Service,/test-project-service,file:///D://test-project/test-project-service/src/main/webapp/,AVAILABLE}{file:///D:/test-project/test-project-service/src/main/webapp/}
> [INFO] Stopped o.e.j.m.p.JettyWebAppContext@55fee662\{WS Test 
> Service,/test-project-service,file:///D://test-project/test-project-service/src/main/webapp/,STOPPED}{file:///D:/test-project/test-project-service/src/main/webapp/}
> [INFO] Webapp source directory = 
> D:\\test-project\test-project-service\src\main\webapp
> [INFO] Reload Mechanic: manual
> [INFO] nonBlocking:false
> [INFO] Classes = D:\\test-project\test-project-service\target\classes
> [INFO] Context path = /test-project-service
> [INFO] Tmp directory = D:\\test-project\test-project-service\target\tmp
> [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
> [INFO] Web overrides =  none
> [INFO] web.xml file = 
> file:///D://test-project/test-project-service/src/main/webapp/WEB-INF/web.xml
> [INFO] Webapp directory = 
> D:\\test-project\test-project-service\src\main\webapp
> [INFO] Scanning elapsed time=12ms
> [WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@55fee662\{WS 
> Test 
> Service,/test-project-service,file:///D://test-project/test-project-service/src/main/webapp/,UNAVAILABLE}{file:///D://test-project/test-project-service/src/main/webapp/}
> java.lang.NoClassDefFoundError: es/testproject/SimpleRestHttpServletTemplate
>     at java.lang.ClassLoader.defineClass1 (Native Method)
>     at java.lang.ClassLoader.defineClass (ClassLoader.java:1017)
>     at java.security.SecureClassLoader.defineClass 
> (SecureClassLoader.java:174)
>     at java.net.URLClassLoader.defineClass (URLClassLoader.java:550)
>     at java.net.URLClassLoader$1.run (URLClassLoader.java:458)
>     at java.net.URLClassLoader$1.run (URLClassLoader.java:452)
>     at java.security.AccessController.doPrivileged (Native Method)
>     at java.net.URLClassLoader.findClass (URLClassLoader.java:451)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.foundClass 
> (WebAppClassLoader.java:642)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.loadAsResource 
> (WebAppClassLoader.java:615)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass 
> (WebAppClassLoader.java:529)
>     at java.lang.ClassLoader.loadClass (ClassLoader.java:522)
>     at org.eclipse.jetty.util.Loader.loadClass (Loader.java:64)
>     at org.eclipse.jetty.servlet.BaseHolder.doStart (BaseHolder.java:89)
>     at org.eclipse.jetty.servlet.ServletHolder.doStart 
> (ServletHolder.java:369)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:73)
>     at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0 
> (ServletHandler.java:730)
>     at java.util.stream.SortedOps$SizedRefSortingSink.end (SortedOps.java:357)
>     at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485)
>     at java.util.stream.AbstractPipeline.wrapAndCopyInto 
> (AbstractPipeline.java:474)
>     at 
> java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining 
> (StreamSpliterators.java:312)
>     at java.util.stream.Streams$ConcatSpliterator.forEachRemaining 
> (Streams.java:735)
>     at java.util.stream.ReferencePipeline$Head.forEach 
> (ReferencePipeline.java:658)
>     at org.eclipse.jetty.servlet.ServletHandler.initialize 
> (ServletHandler.java:755)
>     at org.eclipse.jetty.servlet.ServletContextHandler.startContext 
> (ServletContextHandler.java:379)
>     at org.eclipse.jetty.webapp.WebAppContext.startWebapp 
> (WebAppContext.java:1449)
>     at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp 
> (JettyWebAppContext.java:328)
>     at org.eclipse.jetty.webapp.WebAppContext.startContext 
> (WebAppContext.java:1414)
>     at org.eclipse.jetty.server.handler.ContextHandler.doStart 
> (ContextHandler.java:910)
>     at org.eclipse.jetty.servlet.ServletContextHandler.doStart 
> (ServletContextHandler.java:288)
>     at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:524)
>     at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart 
> (JettyWebAppContext.java:397)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:73)
>     at org.eclipse.jetty.maven.plugin.JettyRunMojo.restartWebApp 
> (JettyRunMojo.java:468)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.restartWebApp 
> (ConsoleScanner.java:114)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.checkSystemInput 
> (ConsoleScanner.java:78)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.run 
> (ConsoleScanner.java:46)
> Caused by: java.lang.ClassNotFoundException: 
> es.testproject.SimpleRestHttpServletTemplate
>     at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass 
> (SelfFirstStrategy.java:50)
>     at 
> org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass 
> (ClassRealm.java:271)
>     at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass 
> (ClassRealm.java:247)
>     at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass 
> (ClassRealm.java:239)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass 
> (WebAppClassLoader.java:538)
>     at java.lang.ClassLoader.loadClass (ClassLoader.java:522)
>     at java.lang.ClassLoader.defineClass1 (Native Method)
>     at java.lang.ClassLoader.defineClass (ClassLoader.java:1017)
>     at java.security.SecureClassLoader.defineClass 
> (SecureClassLoader.java:174)
>     at java.net.URLClassLoader.defineClass (URLClassLoader.java:550)
>     at java.net.URLClassLoader$1.run (URLClassLoader.java:458)
>     at java.net.URLClassLoader$1.run (URLClassLoader.java:452)
>     at java.security.AccessController.doPrivileged (Native Method)
>     at java.net.URLClassLoader.findClass (URLClassLoader.java:451)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.foundClass 
> (WebAppClassLoader.java:642)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.loadAsResource 
> (WebAppClassLoader.java:615)
>     at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass 
> (WebAppClassLoader.java:529)
>     at java.lang.ClassLoader.loadClass (ClassLoader.java:522)
>     at org.eclipse.jetty.util.Loader.loadClass (Loader.java:64)
>     at org.eclipse.jetty.servlet.BaseHolder.doStart (BaseHolder.java:89)
>     at org.eclipse.jetty.servlet.ServletHolder.doStart 
> (ServletHolder.java:369)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:73)
>     at org.eclipse.jetty.servlet.ServletHandler.lambda$initialize$0 
> (ServletHandler.java:730)
>     at java.util.stream.SortedOps$SizedRefSortingSink.end (SortedOps.java:357)
>     at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:485)
>     at java.util.stream.AbstractPipeline.wrapAndCopyInto 
> (AbstractPipeline.java:474)
>     at 
> java.util.stream.StreamSpliterators$WrappingSpliterator.forEachRemaining 
> (StreamSpliterators.java:312)
>     at java.util.stream.Streams$ConcatSpliterator.forEachRemaining 
> (Streams.java:735)
>     at java.util.stream.ReferencePipeline$Head.forEach 
> (ReferencePipeline.java:658)
>     at org.eclipse.jetty.servlet.ServletHandler.initialize 
> (ServletHandler.java:755)
>     at org.eclipse.jetty.servlet.ServletContextHandler.startContext 
> (ServletContextHandler.java:379)
>     at org.eclipse.jetty.webapp.WebAppContext.startWebapp 
> (WebAppContext.java:1449)
>     at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp 
> (JettyWebAppContext.java:328)
>     at org.eclipse.jetty.webapp.WebAppContext.startContext 
> (WebAppContext.java:1414)
>     at org.eclipse.jetty.server.handler.ContextHandler.doStart 
> (ContextHandler.java:910)
>     at org.eclipse.jetty.servlet.ServletContextHandler.doStart 
> (ServletContextHandler.java:288)
>     at org.eclipse.jetty.webapp.WebAppContext.doStart (WebAppContext.java:524)
>     at org.eclipse.jetty.maven.plugin.JettyWebAppContext.doStart 
> (JettyWebAppContext.java:397)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:73)
>     at org.eclipse.jetty.maven.plugin.JettyRunMojo.restartWebApp 
> (JettyRunMojo.java:468)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.restartWebApp 
> (ConsoleScanner.java:114)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.checkSystemInput 
> (ConsoleScanner.java:78)
>     at org.eclipse.jetty.maven.plugin.ConsoleScanner.run 
> (ConsoleScanner.java:46)
> [INFO] Restart completed at Mon Oct 11 11:32:24 CEST 2021}}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to