Серверная сторона Omnifaces Push. PushContext является нулевым - PullRequest
1 голос
/ 07 июня 2019

Мой вопрос о стороне сервера Omnifaces Push. Итак, я пытаюсь интегрировать Omnifaces Push в проект, но у меня проблема с экземпляром PushContext, когда я пытаюсь отправить сообщения (экземпляр PushContext имеет значение null).

Стек технологий

  • Tomcat 9.0.22
  • Gradle 3.2.1
  • JSF 2.2
  • Primefaces 6.2
  • Omnifaces 2.7.1
  • CDI API 2.0
  • сварной сервлет, заштрихованный 3.0.5. Финал

У меня есть контейнер CDI. Я хочу внедрить некоторые экземпляры PushContext (разные push-каналы), но эти экземпляры не вводятся или вводятся неправильно как нулевые. Когда я вызываю метод notificar , pushInicio равен нулю.

@Named
@Startup
public class ControladorMedidas
        implements Serializable {
    @Inject
    @Push(channel = "inicio")
    private PushContext pushInicio;

    @Inject
    @Push(channel = "centro")
    private PushContext pushCentro;

    ...
    private void notificar() {
        // pushInicio -> null
        pushInicio.send("some message");
    }
}

Конфигурация

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <resource-env-ref>
        <!-- Enable Weld CDI, also needs META-INF/context.xml entry -->
        <resource-env-ref-name>BeanManager</resource-env-ref-name>
        <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
    </resource-env-ref>
    <!-- ... -->
    <!-- Configuracion PUSH OmniFaces -->
    <context-param>
        <param-name>org.omnifaces.SOCKET_ENDPOINT_ENABLED</param-name>
        <param-value>true</param-value>
    </context-param>
    <!-- ... -->
</web-app>

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://xmlns.jcp.org/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd"
        bean-discovery-mode="annotated"
>
</beans>

context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/servicios">
    <Resource
            name="BeanManager"
            auth="Container"
            type="javax.enterprise.inject.spi.BeanManager"
            factory="org.jboss.weld.resources.ManagerObjectFactory"
    />
</Context>

похоже, что OmniFaces загружается правильно, потому что Tomcat отслеживает эту строку:

07-Jun-2019 12:30:51.823 INFORMACIÓN [RMI TCP Connection(3)-127.0.0.1] org.omnifaces.ApplicationInitializer.logOmniFacesVersion Using OmniFaces version 2.7.1

С другой стороны, Tomcat не выдает никаких ошибок, связанных с Omnifaces.

Заранее спасибо.

...