Primefaces – web.xml korrekt Konfigurieren

Für Glassfish sind ein paar mehr Einstellungen notwendig um Primefaces Push zu aktivieren und auch korrekt laufen zu lassen.

Im Webprojekt muss die web.xml folgendermaßen erweitert werden:

 

   <servlet>
    <servlet-name>Push Servlet</servlet-name>
    <servlet-class>org.primefaces.push.PushServlet</servlet-class>
    <init-param>
      <param-name>org.atmosphere.cpr.sessionSupport</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.cpr.broadcasterCacheClass</param-name>
      <param-value>org.atmosphere.cache.SessionBroadcasterCache</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.cpr.broadcastFilterClasses</param-name>
      <param-value>org.atmosphere.client.TrackMessageSizeFilter</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.cpr.WebSocketProcessor</param-name>
      <param-value>org.atmosphere.cpr.HttpServletRequestWebSocketProcessor</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.disableOnStateEvent</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.useNative</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.useWebSocket</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>org.atmosphere.websocket.maxTextMessageSize</param-name>
      <param-value>0</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
  </servlet>

 

Aktivieren von Comet in Glassfish

Primefaces bietet in der aktuellen Version ein PrimePush an. Leider scheint das ganze nur zu funktionieren wenn diverse Konfigurationen abgestimmt sind. Derzeit läuft es bei mir noch nicht ganz stabil aber ein paar Tipps kann ich gerne schon mal geben.

Es gibt die Möglichkeit Comet, eine Pushvariante im Glassfish bzw. für Pushservices per Parameter zu aktivieren. Aufpassen! Diese Möglichkeit der klassischen Parameter ist tödlich für den Glassfish. Leider wird damit die Antwortzeit ins unermessliche gesteigert und nur schwer ein Aufruf möglich.

Die sichere Variante ist aktivieren von Comet per Administratorconsole und zwar in den einzelenen http-listenern. Anbei ein Screenshot der das Ganze zeigt.

comet_aktivierung