I'm developing chat app using OmniFaces version 2.7 o:socket and it works like a charm when I deploy it to WildFly 13.0.0 Final but it won't deploy on WebLogic Server Version: 12.2.1.3.0.
Here is the stack trace I'm getting:
Caused By: java.lang.NullPointerException
        at org.omnifaces.cdi.push.Socket.registerEndpointIfNecessary(Socket.java:976)
        at org.omnifaces.ApplicationListener.contextInitialized(ApplicationListener.java:86)
        at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:705)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:328)
        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
        at weblogic.servlet.internal.EventsManager.executeContextListener(EventsManager.java:251)
        at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:204)
        at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:189)
        at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1921)
        at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3106)
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1843)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:884)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
        at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:138)
        at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
I have added socket endpoint enabled to my web.xml
    <context-param>
        <param-name>org.omnifaces.SOCKET_ENDPOINT_ENABLED</param-name>
        <param-value>true</param-value>
    </context-param>
I have created minmal example that reproduces the code. Here is the source:
Here is my bean that holds all the messages:
@Data
@Named
@ApplicationScoped
public class ChatContentBean {
    private List<ChatMessage> chatMessages;
    @Inject
    @Push
    private PushContext someChannel;
    @PostConstruct
    public void init() {
        chatMessages = new ArrayList<>();
    }
    public void clearHistory() {
        chatMessages = new ArrayList<>();
    }
    public void onPageView(@Observes ChatMessage pageView) {
        chatMessages.add(pageView);
        someChannel.send(pageView);
    }
}
My backing bean:
@Log4j
@Data
@Named
@ViewScoped
@Interceptors({ExceptionInterceptor.class})
public class ChatViewBean extends SomeOtherContentPage {
    private String chatMessage;
    @Inject
    @Push
    private PushContext someChannel;
    @Inject
    private BeanManager beanManager;
    @Inject
    private ChatContentBean chatContentBean;
    @Override
    @PostConstruct
    public void init() {
        super.init();
    }
    public void clearHistory() {
        chatContentBean.clearHistory();
    }
    public void sendMessage() {
        ChatMessage cm = new ChatMessage(chatMessage, AuthContext.getUser().displayName());
        someChannel.send(cm);
        beanManager.fireEvent(cm);
        chatMessage = null;
    }
}
And part of my xhtml:
            <o:socket channel="someChannel" onmessage="updateStatsRc"/>
            <h:panelGroup id="chat">
                <ui:repeat value="#{chatContentBean.chatMessages}" var="chatElement">
                    <p:panelGrid columns="1">
                        <h:outputText value="#{chatElement.user} #{chatElement.timestamp} #{chatElement.message}"/>
                    </p:panelGrid>
                </ui:repeat>
            </h:panelGroup>
            <p:remoteCommand name="updateStatsRc" update="chat"/>
            <h:inputText id="chat_input_text" value="#{chatViewBean.chatMessage}"/>
            <p:commandButton value="Send" update="chat_input_text" action="#{chatViewBean.sendMessage()}"/>
            <p:commandButton value="Clear chat history" action="#{chatViewBean.clearHistory()}" update="chat"/>
        </h:form>
And my ChatMessage class:
@Data
public class ChatMessage {
    private String message;
    private String timestamp;
    private String user;
    public ChatMessage(String message, String user) {
        this.message = message;
        timestamp = LocalDateTime.now().toString();
        this.user = user;
    }
}
I allso tryed to add org.omnifaces.ApplicationListener to web.xml but it doesnt change anything.
Any ideas why it won't deploy to weblogic but it works on wildfly?
