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.

Reply via email to