Provided is definitely the correct scope, are you pulling in any other "spec" jars by chance into your maven build?
On Mon, Jul 24, 2023 at 6:14 AM Milan Durovic <milan...@gmail.com> wrote: > 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 -- Jonathan | exabr...@gmail.com Pessimists, see a jar as half empty. Optimists, in contrast, see it as half full. Engineers, of course, understand the glass is twice as big as it needs to be.