Foros del Web » Programación para mayores de 30 ;) » Java »

Ejecutar un metodo cuando se me apaga la pc

Estas en el tema de Ejecutar un metodo cuando se me apaga la pc en el foro de Java en Foros del Web. Estimados: buenos dias para todos, quiero de la ayuda de algun "capo" en Java. La necesidad es la siguiente: Me piden que en la aplicacion ...
  #1 (permalink)  
Antiguo 23/07/2011, 15:40
Avatar de titocba  
Fecha de Ingreso: agosto-2008
Ubicación: Cordoba
Mensajes: 256
Antigüedad: 15 años, 7 meses
Puntos: 4
Ejecutar un metodo cuando se me apaga la pc

Estimados:
buenos dias para todos, quiero de la ayuda de algun "capo" en Java.

La necesidad es la siguiente:
Me piden que en la aplicacion Java que estoy desarrollando, cuando por ejemplo se me apague la pc(o cualquier otra contingencia de este tipo) debo instanciar un metodo de mi aplicacion que me realice una determinada accion sobre los datos de mi base de datos.

Por las dudas informo que trabajo con Spring, Strut2, Hibernate.

Gracias desde ya espero q a alguien se le ocurra algo
  #2 (permalink)  
Antiguo 23/07/2011, 16:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Ejecutar un metodo cuando se me apaga la pc

No sabría si esto funcionaria para tu caso, pero, puedes tratar de utilizar un Listener, especificamente el ServletContextListener.

Este consta de 2 metodos, contextInitialized y contextDestroyed, que se refieren a cuando subes (deploy) tu aplicacion al servidor web y la segunda a cuando la aplicacion se destruye (apagas el servidor, etc).
Podrias usar el 2do y probar si cuando apagas el PC, se ejecuta lo que pongas dentro de este.

Un ejemplo que podrias hacer seria:
Código Javascript:
Ver original
  1. import java.servlet.*;
  2.  
  3. public class ShutdownNotifier implements ServletContextListener {
  4.     public void contextInitialized(ServletContextEvent event) {
  5.         //No hacer nada
  6.     }
  7.    
  8.     public void contextDestroyed(ServletContextEvent event) {
  9.         //Inserta un codigo aqui que se conecte a la base de datos
  10.         //y haga algun cambio o sino algo que cree un archivo
  11.         //Para que luego cuando enciendas el PC
  12.         //Verifiques si se creo o no el archivo/registro
  13.     }
  14. }

Para que funcione, tienes que agregarlo al DD
Código XML:
Ver original
  1. <listener>
  2.     <listener-class>
  3.         com.example.ShutdownNotifier
  4.     </listener-class>
  5. </listener>
  #3 (permalink)  
Antiguo 23/07/2011, 16:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 8 meses
Puntos: 416
Respuesta: Ejecutar un metodo cuando se me apaga la pc

UPDATE:

Hice una pequeña prueba y en efecto funciona.
Cree un Listener tal cual como te mostré arriba y le agregué un simple código para que creara un archivo en el método contextDestroyed().
Al reiniciar mi PC y volver a verificar, el archivo se había creado sin problemas ;) Podrías utilizar ese mismo método para hacer lo que quieres.

Ahora bien, si detienen el servicio del servidor, también se ejecutará el método contextDestroyed, por lo que debes verificar si no habría problemas con eso.
  #4 (permalink)  
Antiguo 23/07/2011, 16:59
Avatar de titocba  
Fecha de Ingreso: agosto-2008
Ubicación: Cordoba
Mensajes: 256
Antigüedad: 15 años, 7 meses
Puntos: 4
Respuesta: Ejecutar un metodo cuando se me apaga la pc

Estaba realizando la prueba Ronruby, de verdad muchas gracias.

Hasta el momento solo se me habia ocurrido manejarlo por el lado del SessionListener pero tampoco habia visto si podria funcionar.

Voy a tener muy en cuenta tu sugerencia.

Si aparece otra idea muy bienvenida.

Etiquetas: hibernate, metodo, pc
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:12.