Cómo supervisar el estado de subproceso asincrónico / de fondo y obtener notificaciones en un componente JSF

Creé algunos hilos en una aplicación web y tengo un componente de tabla de datos en la página JSF.

Me gustaría actualizar la tabla automáticamente para mostrar el estado actual del hilo. ¿Existe algún componente de preconstrucción que pueda usar en este escenario?

Creé algunos hilos en una aplicación web

Sinceramente espero que lo hayas hecho de la manera correcta y así no termine en un desastre épico.


Me gustaría actualizar la tabla automáticamente para mostrar el estado actual del hilo. ¿Existe algún componente de preconstrucción que pueda usar en este escenario?

Básicamente, buscas una técnica llamada “sondeo” o “empujar”. El concepto básico de sondeo es usar setInterval() setTimeout() o setTimeout() para lanzar una solicitud HTTP (ajax) al servidor a intervalos y dejar que procese los resultados en consecuencia. El concepto básico de empujar es abrir una conexión HTTP persistente y hacer que el servidor envíe pequeños mensajes sobre ella, esto se puede hacer, entre otros, con WebSocket en JavaScript y API JSR356 en Java EE 7 .

La implementación estándar de JSF no ofrece ningún componente de sondeo o empuje listo para usar. Para el próximo JSF 2.3, una nueva etiqueta está actualmente en curso (ver también el número 1396 ).

Su mejor opción sería un formulario oculto con un enlace / botón de comando oculto con y luego invocarlo por setInterval() . Sin embargo, las bibliotecas de componentes como PrimeFaces ofrecen componentes listos para usar, ver también showcase y showcase para algunos ejemplos concretos. La biblioteca de utilidades JSF OmniFaces tiene en su mostrar un ejemplo de encuesta y en mostrar varios ejemplos de inserción (el nuevo estándar JSF se basará principalmente en ).

Ver también:

  • ¿Cómo ajax-update un componente en un intervalo de 1 segundo?
  • Actualizaciones en tiempo real desde la base de datos usando JSF / Java EE
  • ¿Cómo puede el servidor enviar cambios asíncronos a una página HTML creada por JSF?