2016-12-13 2 views
2

J'ai un service qui s'exécute à partir d'un conteneur docker qui tourne très bien pendant environ une heure, puis java.lang.NoClassDefFoundError. Après avoir lu ces erreurs, il semble que ce soit souvent un problème lors de l'initialisation, mais mon service fonctionne très bien au début - y compris en utilisant la classe qui ne peut être trouvée tout à coup! En fait, cette classe particulière doit être initialisée pour que le service démarre correctement. C'est une application multithread fonctionnant sur Spring.java.lang.NoClassDefFoundError: se produit après plusieurs utilisations d'un programme

Quelles sont les raisons pour lesquelles une classe a disparu après avoir été utilisée?

+0

où est située la classe, est-ce la partie du pot de la bibliothèque ou du pot principal? – ravthiru

+0

La classe est dans le fichier bibliothèque, c'est une dépendance du service principal. –

Répondre

0

Compris!

C'était un problème de mémoire étrange. Le garbage collector sélectionnait et supprimait la classe que mon programme recherchait. Il démarrerait et fonctionnerait bien, mais une fois qu'il serait resté inactif pendant 30 minutes, le GC détruirait la classe dont il avait besoin. Womp! J'ai donné à mon programme plus de mémoire et ça fonctionne comme un rêve maintenant.