Hi,

I’m hitting the wall with this one and couldn’t find any help on the Web. When 
I try to launch my web app from within Eclipse (Version: 2023-06 4.28.0) in the 
Tomee (version 9.1 that uses Tomcat 10.0), I get the following loading error:

== start quote
July 24, 2023 10:39:08 AM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of 
class [org.apache.myfaces.webapp.StartupServletContextListener]
java.lang.LinkageError: loader constraint violation for class 
org.apache.tomee.myfaces.TomEEWebConfigProvider: when selecting overriding 
method 'java.util.List 
org.apache.tomee.myfaces.TomEEWebConfigProvider.getFacesServletMappings(jakarta.faces.context.ExternalContext)'
 the class loader org.apache.tomee.catalina.TomEEWebappClassLoader @2e5b7fba of 
the selected method's type org.apache.tomee.myfaces.TomEEWebConfigProvider, and 
the class loader java.net.URLClassLoader @7106e68e for its super type 
org.apache.myfaces.spi.impl.DefaultWebConfigProvider have different Class 
objects for the type jakarta.faces.context.ExternalContext used in the 
signature (org.apache.tomee.myfaces.TomEEWebConfigProvider is in unnamed module 
of loader org.apache.tomee.catalina.TomEEWebappClassLoader @2e5b7fba, parent 
loader java.net.URLClassLoader @7106e68e; 
org.apache.myfaces.spi.impl.DefaultWebConfigProvider is in unnamed module of 
loader java.net.URLClassLoader @7106e68e, parent loader 'app')
        at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
        at 
java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3373)
        at java.base/java.lang.Class.getConstructor0(Class.java:3578)
        at java.base/java.lang.Class.getConstructor(Class.java:2271)
        at 
org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:602)
        at 
org.apache.myfaces.shared.util.ClassUtils.buildApplicationObject(ClassUtils.java:534)
        at 
org.apache.myfaces.spi.impl.DefaultWebConfigProviderFactory.resolveWebXmlProviderFromService(DefaultWebConfigProviderFactory.java:129)
        at 
org.apache.myfaces.spi.impl.DefaultWebConfigProviderFactory.getWebConfigProvider(DefaultWebConfigProviderFactory.java:82)
        at 
org.apache.myfaces.webapp.AbstractFacesInitializer.initFaces(AbstractFacesInitializer.java:161)
        at 
org.apache.myfaces.webapp.StartupServletContextListener.contextInitialized(StartupServletContextListener.java:103)
        at 
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4716)
        at 
org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5180)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
        at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
        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:145)
        at 
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
        at 
org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:886)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
        at 
org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
        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:145)
        at 
org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
        at 
org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:265)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at 
org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at 
org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:795)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)

July 24, 2023 10:39:08 AM jdk.internal.reflect.NativeMethodAccessorImpl invoke
SEVERE: One or more listeners failed to start. Full details will be found in 
the appropriate container log file
== end quote

I searched through JAR files, both those installed with my web app and those 
provided by Tomee, and the problem class, 
jakarta.faces.context.ExternalContext, appears only in myfaces-api-3.0.2.jar, 
and this one is defined as a Maven dependency:

   <dependency>
     <groupId>org.apache.myfaces.core</groupId>
     <artifactId>myfaces-api</artifactId>
     <version>3.0.2</version>
     <scope>provided</scope>
   </dependency>

In the project’s pom.xml file. I wrote a script that was looking for the 
problem class in all JARs, my web app’s and tomee jars, but only one instance 
where that class is defined was found. For this reason, I find the message very 
puzzling, because it appears to indicate that there’s more than one definition, 
found by different class loaders, so I’m lost here about where to look for the 
problem.

Any help would be greatly appreciated.

Thanks,
Milan

Reply via email to