Я получаю исключение NoClassDefFoundError
на org.apache.commons.logging.LogFactory
после того, как я уже создал экземпляр. Я могу создать объект LogFactory
просто отлично и получить от него экземпляр org.apache.commons.logging.Log
, но при создании объекта типа org.apache.axis.description.TypeDesc
вызывается NoClassDefFoundError
, когда этот класс пытается получить экземпляр org.apache.commons.logging.Log
от LogFactory
. Кажется, что исключение должно быть брошено по строке 284. (?)NoClassDefFoundError, созданный даже после того, как объект может быть создан
Вот мой код (линии DtUiLoggingRequest от 282 до 294);
log.debug("vvvvvvvvvvvvvvvv");
org.apache.commons.logging.LogFactory logFactory = (org.apache.commons.logging.LogFactory)LogFactory.getFactory();
Log myLog = LogFactory.getLog(DtUiLoggingRequest.class.getName());
log.debug(logFactory.getClass().getName());
log.debug(myLog.getClass().getName());
myLog.debug("This is coming from 'myLog'");
log.debug("^^^^^^^^^^^^^^^^");
typeDesc = new org.apache.axis.description.TypeDesc(DtUiLoggingRequest.class);
Вот что говорит журнал;
DEBUG 2012-02-23 09:32:08,739 vvvvvvvvvvvvvvvv
DEBUG 2012-02-23 09:32:08,739 org.apache.commons.logging.impl.LogFactoryImpl
DEBUG 2012-02-23 09:32:08,739 org.apache.commons.logging.impl.Log4JLogger
DEBUG 2012-02-23 09:32:08,739 ^^^^^^^^^^^^^^^^
ERROR 2012-02-23 09:32:08,739 Exception Details:
java.lang.NoClassDefFoundError: org.apache.commons.logging.LogFactory
at org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:45)
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.description.TypeDesc.<clinit>(TypeDesc.java:61)
at com.symantec.cas.ucf.sensors.DtUiLoggingRrequest.initTypeDesc(DtUiLoggingRequest.java:294)
at com.symantec.cas.ucf.sensors.sap.DtUiLoggingRequest.<init>(DtUiLoggingRequest.java:58)
at com.symantec.cas.ucf.sensors.sap.SapSensor.OpenDevice(Sensor.java:151)
at com.symantec.cas.ucf.collector.SensorJob.openSensor(SensorJob.java:156)
at com.symantec.cas.ucf.collector.SensorJob.run(SensorJob.java:290)
at java.lang.Thread.run(Thread.java:662)
Кажется, вы не включаете 'требуемые файлы jar' в свой путь к классам. – RanRag
Как вы запускаете этот проект (контейнер сервлетов, командная строка, ant-скрипт и т. Д.)? – Fixpoint
@ RanRag - Да, это прямой ответ. Тем не менее, я могу создать объект того же типа, поэтому LogFactory находится в пути к классам в один момент. – JediPotPie