Estoy desarrollando una aplicación en JSF 2.0 y me gustaría tener un cuadro de texto de líneas múltiples que muestre los datos de salida que se leen (línea por línea) desde un archivo en tiempo real.Intercambio de datos en tiempo real sobre AJAX con múltiples hilos
Así que el objetivo es tener una página con un botón que active el motor para que comience a leer el archivo y luego muestre los resultados tal como se leen en el cuadro de texto.
que había pensado en hacer esto de la siguiente manera:
que la página local de seguimiento de lo que se ha recuperado líneas/aparece en el cuadro de texto hasta el momento.
Periódicamente, la página local sondeará el servidor usando AJAX y solicitará cualquier dato nuevo que haya sido leído (le dirá qué líneas tiene la página hasta el momento y solo recuperará las nuevas líneas desde entonces).
Esto continuará hasta que se haya recuperado por completo el archivo completo.
El problema es que el método de bean que lee desde el archivo ejecuta un ciclo while que bloquea. Entonces, para leer desde la estructura de datos a la que se está escribiendo, al mismo tiempo se requerirá el uso de hilos adicionales, ¿correcto? Escuché que generar nuevos hilos en una aplicación web es un movimiento potencialmente peligroso y que se deben usar grupos de hilos, etc.
¿Alguien puede arrojar algo de información sobre esto?
Actualización: He intentado un par de cosas diferentes sin suerte. Pero me las arreglé para que funcionase al generar un Thread
por separado para ejecutar mi ciclo de bloqueo mientras que el hilo principal se podía usar para leer cuando se procesaba una solicitud AJAX. ¿Existe una buena biblioteca que podría utilizar para hacer algo similar a esto que todavía le da a JSF algún control del ciclo de vida sobre este Thread
?
¿Está apuntando a un contenedor Java EE 5 o 6 con soporte de EJB? – BalusC
Estoy implementando esto en un servidor Tomcat sin soporte EJB ... Desearía tener acceso a la anotación @Asincrónica pero no lo hago – idolize