部署项目的时候,在windows下一切正常,但是在centos下就发生如下错误
Caused by: java.lang.ExceptionInInitializerError at com.dsideal.sys.service.impl.SysMenuService.<init>(SysMenuService.java:60) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:96) ... 32 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'LoggingThrowsAdvice' defined in class path resource [applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.dsideal.framework.aop.LoggingThrowsAdvice]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:881) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:837) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83) at com.dsideal.framework.common.SpringUtil.<clinit>(SpringUtil.java:9) ... 38 more Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.dsideal.framework.aop.LoggingThrowsAdvice]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:111) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:875) ... 54 more Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.LogManager at org.apache.log4j.Logger.getLogger(Logger.java:85) at com.dsideal.framework.aop.LoggingThrowsAdvice.<init>(LoggingThrowsAdvice.java:12) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:96) ... 56 more
最终解决方法是:log4j.properties配置错误
windows下配置为:
#log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%5p [%t] - %m%n
#
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=c:/subject.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=0
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout.ConversionPattern=[ssh] %p %t %c - %m%n
#
log4j.logger.com.ibatis=debug,ibatis
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug,ibatis
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug,ibatis
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug,ibatis
#
log4j.logger.java.sql.Connection=debug,ibatis
log4j.logger.java.sql.Statement=debug,ibatis
log4j.logger.java.sql.PreparedStatement=debug,stdout,ibatis
log4j.logger.java.lang.Exception=debug,ibatis
#
log4j.appender.ibatis=org.apache.log4j.RollingFileAppender
log4j.appender.ibatis.File=c:/ibatis.log
log4j.appender.ibatis.MaxFileSize=100KB
log4j.appender.ibatis.MaxBackupIndex=0
log4j.appender.ibatis.layout=org.apache.log4j.SimpleLayout
log4j.appender.ibatis.layout.ConversionPattern=[ssh] %p %t %c - %m%n
log4j.logger.com.opensymphony.xwork2=ERROR
而在centos中,没有c:/,这里一定要注意
#log4j.rootLogger=info,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.conversionPattern=%5p [%t] - %m%n
#
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/usr/local/subject.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=0
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout.ConversionPattern=[ssh] %p %t %c - %m%n
#
log4j.logger.com.ibatis=debug,ibatis
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug,ibatis
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug,ibatis
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug,ibatis
#
log4j.logger.java.sql.Connection=debug,ibatis
log4j.logger.java.sql.Statement=debug,ibatis
log4j.logger.java.sql.PreparedStatement=debug,stdout,ibatis
log4j.logger.java.lang.Exception=debug,ibatis
#
log4j.appender.ibatis=org.apache.log4j.RollingFileAppender
log4j.appender.ibatis.File=/usr/local/ibatis.log
log4j.appender.ibatis.MaxFileSize=100KB
log4j.appender.ibatis.MaxBackupIndex=0
log4j.appender.ibatis.layout=org.apache.log4j.SimpleLayout
log4j.appender.ibatis.layout.ConversionPattern=[ssh] %p %t %c - %m%n
log4j.logger.com.opensymphony.xwork2=ERROR