java.lang.NoClassDefFoundError: accade sporadicamente sulla resina sever start up
Domanda
java.lang.NoClassDefFoundError: accade sporadicamente sulla resina sever start up
Questo è il Resin 3.0.21 Utilizzo di Java 1.5 sulla macchina Linux ...
Ho un servlet definita sulla web.xml per caricare i log4j.properties. Questo viene generata quando il servlet sta tentando di caricare all'avvio ..
log4j-init: init log4j: ERRORE Impossibile creare un'istanza di classe [org.apache.log4j.DailyRollingFileAppender]. java.lang.ClassNotFoundException: org.apache.log4j.DailyRollingFileAppender [java.lang.NoClassDefFoundError: org / apache / log4j / FileAppender] a com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1264) a com.caucho.loader.DynamicClassLoader.findClass (DynamicClassLoader.java:1149) a com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1072) a com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1021) a java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) a java.lang.Class.forName0 (metodo natale) a java.lang.Class.forName (Class.java:164) a org.apache.log4j.helpers.Loader.loadClass (Loader.java:160) a org.apache.log4j.helpers.OptionConverter.instantiateByClassName (OptionConverter.java:309) a org.apache.log4j.helpers.OptionConverter.instantiateByKey (OptionConverter.java:112) a org.apache.log4j.PropertyConfigurator.parseAppender (PropertyConfigurator.java:620)
Soluzione 2
Abbiamo scoperto che questo di solito accade quando non c'è spazio libero su disco sul server
Altri suggerimenti
Molto probabilmente, il file log4j.jar
si trova sul percorso di classe per due volte, causando problemi classpath. Se Log4J viene caricato due volte, una volta in applicazione Web e una volta in resina, allora si può ottenere questo tipo di confusione. Supponendo log4j è già presente in resina, se è presente nel classpath dell'applicazione web (lib), quindi provare a rimuoverlo dalla directory lib dell'applicazione anche.
Potrebbe non essere "start", ma "restart" situazione.
Alcune classi di log4j non vengono scaricati su arresto di app e il prossimo (ri) avvio causerà la situazione con l'ingresso per due volte (vedi post di Eddie), se log4j caricato in webapp. La soluzione è quella di mettere in log4j lib / directory di resina.