J'ai un programme java qui est un compilateur et un exécuteur pour les rapports Jasper et est appelé via un script shell sur notre serveur de rapports.Capture d'une java NoClassDefFoundError levée par un programme appelé via un script shell
Je viens de corriger un bug causé par une dépendance manquante, mais il m'a fallu un certain temps pour comprendre ce qui n'allait pas. Normalement, les problèmes causés par le processus de compilation sont capturés, enregistrés dans un fichier journal et envoyés par e-mail à la personne concernée. Comme c'était un NoClassDefFoundError, il a fondamentalement quitté le programme et a échoué d'une manière silencieuse du point de vue des utilisateurs.
Y a-t-il un moyen pour moi de capturer des erreurs comme celle-ci afin qu'elles puissent aussi être envoyées par courriel? J'ai le droit de modifier le script shell en cours d'exécution.
http://www.hiteshagrawal.com/java/sending-email-using-apache-log4j – oers
Je regardai en log4j un peu, mais je crois comprendre que je ne pense pas que cela fonctionnerait. Une NoClassDefFoundError ne peut pas être capturée dans le programme pour être enregistrée car elle force immédiatement. – Numeron
dans votre méthode principale statique dans votre classe de démarrage, vous pouvez inclure un try ... catch (Throwable) ... qui sera capable de gérer le noclassdeferror – oers