[
https://issues.apache.org/jira/browse/MYFACES-4445?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17597065#comment-17597065
]
Thomas Andraschko commented on MYFACES-4445:
--------------------------------------------
the 2) part should be "fixed"
> MyFaces web socket implementation - as a replacement for Omnifaces
> implementation
> ---------------------------------------------------------------------------------
>
> 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)