java.lang.NoClassDefFoundError: acontece esporadicamente em resina Sever arranque
Pergunta
java.lang.NoClassDefFoundError: acontece esporadicamente em resina Sever arranque
Esta é a Resina 3.0.21 Usando Java 1.5 na máquina Linux ...
Eu tenho um servlet definido no web.xml para carregar os log4j.properties. Esta é lançada quando o servlet está tentando carregar no arranque ..
-log4j INIT: log4j INIT: erro pode classe não instanciar [org.apache.log4j.DailyRollingFileAppender]. java.lang.ClassNotFoundException: org.apache.log4j.DailyRollingFileAppender [java.lang.NoClassDefFoundError: org / Apache / log4j / FileAppender] em com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1264) em com.caucho.loader.DynamicClassLoader.findClass (DynamicClassLoader.java:1149) em com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1072) em com.caucho.loader.DynamicClassLoader.loadClass (DynamicClassLoader.java:1021) em java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) em java.lang.Class.forName0 (Método Nativo) em Java.Lang.Class.forName (Class.java:164) em org.apache.log4j.helpers.Loader.loadClass (Loader.java:160) em org.apache.log4j.helpers.OptionConverter.instantiateByClassName (OptionConverter.java:309) em org.apache.log4j.helpers.OptionConverter.instantiateByKey (OptionConverter.java:112) em org.apache.log4j.PropertyConfigurator.parseAppender (PropertyConfigurator.java:620)
Solução 2
Nós descobrimos que isso geralmente acontece quando não há espaço livre em disco no servidor
Outras dicas
Provavelmente, o log4j.jar
arquivo for encontrado no classpath duas vezes, causando problemas classpath. Se Log4J é carregado duas vezes, uma no aplicativo da Web e de vez em resina, então você pode obter este tipo de confusão. Assumindo log4j já está presente em resina, se ele também está presente no classpath (lib) do seu aplicativo web, em seguida, tente removê-lo do diretório lib da sua aplicação.
Pode não ser "começar", mas "restart" situação.
Algumas classes de log4j não são descarregados no desligamento do aplicativo e no próximo (re) início fará com que a situação com a entrada duas vezes (veja o post de Eddie), se log4j carregado na webapp. A solução é colocar log4j em de resina lib /.