今天启动java程序,日志一直无法正常输出,经过查询,在tomcat的日志中出现如下异常:
Exception in thread "pool-1-thread-2" java.lang.NoClassDefFoundError: org/apache/log4j/spi/ThrowableInformation
DbConnInfo add conn is null
Exception in thread "pool-3-thread-2" Exception in thread "pool-2-thread-2" at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:145)
at org.apache.log4j.Category.forcedLog(Category.java:372)
at org.apache.log4j.Category.info(Category.java:691)
at com.hispeed.dbApi.DbApi.getConnection(DbApi.java:598)
at com.hispeed.dbApi.DbApi.caculateConn(DbApi.java:883)
at com.hispeed.dbApi.DbApi.execQuerySQLgetObjects(DbApi.java:502)
at com.hispeed.dao.impl.AliOrderCreateDao.getOrderinfoList(AliOrderCreateDao.java:41)
at com.hispeed.thread.AliOrderCreateProducer.getProducts(AliOrderCreateProducer.java:39)
at com.hispeed.producerConsumer.distinct.DistinctProducer.run(DistinctProducer.java:45)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.spi.ThrowableInformation
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1856)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1705)
... 12 more
查询网上原因,说是log4j jar文件冲突,但是我程序jar并未冲突
重启程序,查看tomcat启动日志,发现启动是tomcat监听端口被占用,导致程序启动异常
更改监听端口,重启程序,日志输出正常。
1。查看程序端口是否被占用
2。 查看log4j jar文件是否存在冲突,或者少jar(log4j jar 包含:log4j-1.2.8.jar,slf4j-api-1.6.1.jar,slf4j-log4j12-1.6.1.jar)
可能产生原因不止这两个,需根据自身问题实际解决,仅供参考