Problemas con jAlarm cuando se hereda la @AlarmOnException y Spring 3.1
Estoy chacando una forma para la notificación de errores, me llamo la atencion el JAlarm, se configura de una forma facil y se obtiene el comportamiento deseado en un esquema de trabajo normal. Pero al interntar usarla en mi esquema de trabajo tengo un pequeño problema.
Tengo un controlador que extiende de una clase base en esa clase base pongo la @AlarmOnException pera que todos los hijos reporten los errores a JAalarm pero no sucede eso, en cambio cuando la @AlarmOnException se la pongo a cada controlador hijo entonces si funcionan las notificaciones de error.
Cual puede ser mi problema, o que me recomiendan hacer para que solo ponga @ExceptionHandler una ves en lugar de modificar todos mis controladores?.
Otra cosa muy importante veo que las librerias no se actualizan desde el 2011 no se si aun seguiran dando soporte o hasta ahi llego su ciclo de vida.
Por otra parte tambien hay un @ExceptionHandler de spring 3.1 que me permite obtener a nivel de controlador las exception criticas al cliente y tratarlas. la pregunta seria : Entre JAlam y @ExceptionHandler cual de las dos metodologias seria la mas adecuada para tratar ese tipo de errores en la capa de controller.
Saludos.
- Inicie sesión o regístrese para enviar comentarios
2011?
Si te refieres a jAlarms, la versión 1.7.0 la liberé hace menos de un mes. Durante 2012 liberé un par de versiones 1.6.x.
No sé si con AOP se pueda aplicar la anotación a todas las subclases que extiendan el método (supongo que el problema es que sobreescriben el método anotado) - tal vez lo que hay que hacer es cambiar la definición del pointcut en el AlarmAspect.
El proyecto ya no lo llevo en sourceforge, ahí sólo tengo la página con documentación, API, etc; me pasé a github: github.com/chochos/jAlarms
Pero primero hay que investigar si tan siquiera es posible lo que estás pidiendo; que yo sepa, las anotaciones no se heredan...
Con respecto al segundo punto
Podrías usar el @ExceptionHandler y dentro del tratamiento de tu excepción, si es el caso, enviar la alarma (previamente configurada) con el jAlarms.
solo vi el proyecto de sourceforge
ok ya checare la nueva version
Mia La culpa..
Muchas gracias.
Al final termine usando Aspect -@AfterThrowing
Ya que el requerimiento solo era guardar en base de datos los errores criticos que llegan al controlador mi mejor opcion fue crear un bean de tipo .
@Component
public class LoggingAspect {
protected static Logger logger = Logger.getLogger(LoggingAspect.class);
@AfterThrowing(
pointcut = "execution(* mx.com.algo.controller..*(..))",
throwing= "error")
public void logAfterThrowing(JoinPoint joinPoint, Throwable error) {
/*aski se trata el error y se envia a la base de datos*/
}
}
Por otra parte el JAlarm la tomare para proponer enviar informacion a otro tipo de servicio.
Saludos.