Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > Problema J2EE y AJAX

Buenos días,
Estoy programando un modulo para una aplicación J2EE con AJAX y tengo una duda a ver si se puede hacer o no.
La aplicación esta diseñada para que en la generación de unos informes, por la cantidad de datos que maneja y para que no devuelva un timeout el OC4J, se lleva a cabo desde un hilo que se esta ejecutando en segundo plano mientras al usuario se le permite continuar con la navegación sobre la aplicación. El problema que tengo es que quiero refrescar la aplicación mostrando un mensaje automaticamente cuando el hilo finalice su ejecución con AJAX. Lo que he visto es que, si mientras el hilo se esta ejecutando, se envia otra petición al servidor, a lo que AJAX intenta mostrar el mensaje por el navegador, da Nullpointerexception, al parecer porque ya se ha perdido la request inicial con la que se había lanzado el hilo.
¿Alguien tiene idea de como solucionar esto? Si, tras lanzar el hilo, no envio ninguna petición al servidor todo funciona correctamente y me acaba mostrando el mensaje con el enlace para recuperar el informe, pero si intento moverme por la aplicación pierdo la respuesta. De momento lo he solucionado metiendo una variable en sesion y haciendo que la aplicación compruebe en el servlet si la variable viene informada y en cada petición mostraría el mensaje correspondiente, pasando de la respuesta AJAX.
Un saludo y muchas gracias.

febrero 1, 2012 | Unregistered Commenterptrnoe

Crear tus propios hilos en una aplicación JavaEE (o J2EE) es una mala idea. El Servidor de aplicaciones necesita tener control de la administración de los hilos, para poder hacer tareas como el "self-tuning". Crear tus propios hilos en un Servlet Container es posible, pero no es deseable, necesitas tener mucho cuidado.

Puedes utilizar Asynchronous Stateless EJB tal como lo mencionan aquí:
http://stackoverflow.com/questions/8496806/long-running-task-in-java-ee-webapp-icefaces

En lo particular no me parece tan mala idea lo de utilizar ICEPush para notificar a la capa de presentación.

Saludos,

febrero 8, 2012 | Registered Commenterantoniovl