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

Romain Manni-Bucau commented on OWB-1298:
-----------------------------------------

Hi [~melloware],

the issue comes from the fact the API jar adds annotated type with an id 
different from the id scanned for the same bean so it ends up with 2 
conflicting beans.

Excluding the API jar through openwebbeans.properties will solve the issue.

Fun thing is that the passed id is "null" but the CDI spec does not mention it 
is an id which implies to fallback on the default id for a class.

Long story short, the API jar should be fixed and we need to review on OWB side 
if we want to default or challenge the spec to make null fail.

 

Hope it helps.

Romain

> WebsocketUserManager ambigious resolution Jakarta Faces
> -------------------------------------------------------
>
>                 Key: OWB-1298
>                 URL: https://issues.apache.org/jira/browse/OWB-1298
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Injection and Lookup
>         Environment: Jetty 9.4
>            Reporter: Melloware
>            Priority: Major
>         Attachments: owb-test.zip
>
>
> Originally Reported: https://github.com/primefaces/primefaces-test/issues/15
> Attached is a test case you can run with "*mvn clean jetty:run-exploded 
> -Pmojarra23*".
> Trying to use the latest Jakarta Faces with OWB 2.0.11 results in ambigious 
> resolution of the WebocketUserManager.
> {code:xml}
> <dependency>
>     <groupId>org.glassfish</groupId>
>     <artifactId>jakarta.faces</artifactId>
>     <version>2.3.13</version>
> </dependency>
> {code}
> The resulting stack trace:
> {code}
> org.apache.webbeans.exception.WebBeansDeploymentException: 
> javax.enterprise.inject.AmbiguousResolutionException: There is more than one 
> Bean with type com.sun.faces.push.WebsocketSessionManager Qualifiers: 
> [@javax.enterprise.inject.Default()]
> for injection into Field Injection Point, field name :  socketSessions, Bean 
> Owner : [WebsocketPushContextProducer, WebBeansType:MANAGED, Name:null, API 
> Types:[com.sun.faces.cdi.WebsocketPushContextProducer,java.lang.Object], 
> Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any]]
> found beans:
> WebsocketSessionManager, WebBeansType:MANAGED, Name:null, API 
> Types:[com.sun.faces.push.WebsocketSessionManager,java.lang.Object], 
> Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] from 
> jar:file:/C:/dev/primefaces/primefaces-test/target/primefaces-test-1.0-SNAPSHOT/WEB-INF/lib/jakarta.faces-2.3.13.jar!/com/sun/faces/push/WebsocketSessionManager.class
> WebsocketSessionManager, WebBeansType:MANAGED, Name:null, API 
> Types:[com.sun.faces.push.WebsocketSessionManager,java.lang.Object], 
> Qualifiers:[javax.enterprise.inject.Default,javax.enterprise.inject.Any] from 
> jar:file:/C:/dev/primefaces/primefaces-test/target/primefaces-test-1.0-SNAPSHOT/WEB-INF/lib/jakarta.faces-2.3.13.jar!/com/sun/faces/push/WebsocketSessionManager.class
>     at org.apache.webbeans.config.BeansDeployer.deploy 
> (BeansDeployer.java:360)
>     at org.apache.webbeans.lifecycle.AbstractLifeCycle.bootstrapApplication 
> (AbstractLifeCycle.java:137)
>     at org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication 
> (AbstractLifeCycle.java:103)
>     at 
> org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication 
> (WebContainerLifecycle.java:98)
>     at 
> org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized 
> (WebBeansConfigurationListener.java:85)
>     at org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized 
> (ContextHandler.java:921)
>     at org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized 
> (ServletContextHandler.java:554)
>     at org.eclipse.jetty.server.handler.ContextHandler.startContext 
> (ContextHandler.java:888)
>     at org.eclipse.jetty.servlet.ServletContextHandler.startContext 
> (ServletContextHandler.java:357)
>     at org.eclipse.jetty.webapp.WebAppContext.startWebapp 
> (WebAppContext.java:1443)
>     at org.eclipse.jetty.maven.plugin.JettyWebAppContext.startWebapp 
> (JettyWebAppContext.java:328)
>     at org.eclipse.jetty.webapp.WebAppContext.startContext 
> (WebAppContext.java:1407)
>     at org.eclipse.jetty.server.handler.ContextHandler.doStart 
> (ContextHandler.java:821)
>     at org.eclipse.jetty.servlet.ServletContextHandler.doStart 
> (ServletContextHandler.java:276)
>     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:72)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.start 
> (ContainerLifeCycle.java:169)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart 
> (ContainerLifeCycle.java:117)
>     at org.eclipse.jetty.server.handler.AbstractHandler.doStart 
> (AbstractHandler.java:106)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:72)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.start 
> (ContainerLifeCycle.java:169)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart 
> (ContainerLifeCycle.java:117)
>     at org.eclipse.jetty.server.handler.AbstractHandler.doStart 
> (AbstractHandler.java:106)
>     at org.eclipse.jetty.util.component.AbstractLifeCycle.start 
> (AbstractLifeCycle.java:72)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.start 
> (ContainerLifeCycle.java:169)
>     at org.eclipse.jetty.server.Server.start (Server.java:407)
>     at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart 
> (ContainerLifeCycle.java:110)
>     at org.eclipse.jetty.server.handler.AbstractHandler.doStart 
> (AbstractHandler.java:106)
>     at org.eclipse.jetty.server.Server.doStart (Server.java:371)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to