You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Arjan Tijms (Jira)" <ji...@apache.org> on 2019/10/04 17:08:00 UTC

[jira] [Commented] (OWB-1298) WebsocketUserManager ambigious resolution Jakarta Faces

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

Arjan Tijms commented on OWB-1298:
----------------------------------

>  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.

 

The API jar shouldn't add annotated types, as it doesn't contain the CDI extension. I think you mean the implementation jar here.

This is the implementation jar:

 
<dependency><groupId>org.glassfish</groupId><artifactId>jakarta.faces</artifactId><version>2.3.13</version></dependency>
 

The CDI Extension in Mojarra should set an ID though. I thought I fixed that a while ago, but either the commit got lost somewhere, or I remembered wrong. I'll add these IDs for the next version of Mojarra then.

I'm not sure whether it will fix the problem though. Isn't it the case that if a jar contains an extension, OWB should not scan it? Maybe that is the real problem here?

 

 

> 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
>             Fix For: 2.0.12
>
>         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.4#803005)