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

Thomas Andraschko commented on MYFACES-4445:
--------------------------------------------

yeah, the mojarra/omnifaces idea sounds good
please provide a PR and i can review then

> "No CDI container started" when using PushContext async
> -------------------------------------------------------
>
>                 Key: MYFACES-4445
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4445
>             Project: MyFaces Core
>          Issue Type: Task
>          Components: General
>    Affects Versions: 2.3-next-M7
>            Reporter: Milan Siebenbürger
>            Assignee: Thomas Andraschko
>            Priority: Minor
>             Fix For: 2.3.11, 3.0.3, 2.3-next-M8, 4.0.0-RC2
>
>
> Hello, we are trying to replace Omnifaces websockets (o:socket) with Myfaces 
> implementation in our application and we are encountering some problems that 
> prevent us from completing this task. 
>  
> 1. The most serious problem is that the MyFaces implementation does not work 
> when using asynchronous computation (Future interface). Sending a push 
> message ends with a "No CDI container started" exception, while the Omnifaces 
> implementation works flawlessly.
> {code:java}
> java.lang.IllegalStateException: No CDI container started
>         at 
> org.apache.webbeans.container.OwbCDI.getWebBeansContext(OwbCDI.java:44)
>         at org.apache.webbeans.container.OwbCDI.getBeanManager(OwbCDI.java:61)
>         at 
> org.apache.myfaces.push.cdi.PushContextImpl.send(PushContextImpl.java:64){code}
> Do you see any way to make this work, or do we have to stick with OmniFaces 
> in this situation?
>  
> 2. When using another type of push message, in response to a scheduler or jms 
> message, sending the message works, but each time it is sent, this warning 
> message is logged. 
> {code:java}
> org.apache.webbeans.web.context.WebContextsService.lazyStartSessionContext 
> Could NOT lazily initialize session context because NO active request 
> context{code}
> The reason is this part of the code in PushContextImpl:
>  
> {code:java}
> if (CDIUtils.isSessionScopeActive(beanManager)) {
>     sessionTokenBean = (WebsocketSessionBean)CDIUtils.get(beanManager, 
> WebsocketSessionBean.class, false, new Annotation[0]);
>     if (CDIUtils.isViewScopeActive(beanManager)) {
>         viewTokenBean = (WebsocketViewBean)CDIUtils.get(beanManager, 
> WebsocketViewBean.class, false, new Annotation[0]);
>     }
> }{code}
> Method isSessionScopeActive returns false (of course, because there is no 
> session scope active in this case) - it fallbacks correctly to application 
> scoped WebsocketApplicationBean, but this warning message is logged. Is there 
> any way to get rid of this log - other than reconfiguring the logging 
> framework?
> I have created a simple demonstration where you can see these problems. Just 
> download it and run it on Apache Tomcat. -> 
> https://github.com/milansie/websocket-demo
> I'd be grateful for any help or advice or, ideally, for a change in the 
> MyFaces implementation.
>  
> Thank you!
> Milan Siebenbürger
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to