启动tomcat7,结果出现以下错误
,那个log4j-core包我也导入了呀!
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
求大神指点
启动tomcat7,结果出现以下错误
,那个log4j-core包我也导入了呀!
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
求大神指点
我也遇到了这个问题,已解决!
问题描述:
使用Intellij Idea测试开发Struts2.新建module,根据提示,一步步往下走,其间下载了struts2要用的的基本jar,版本为默认的2.5.14.1,完成后,做了一些setting(这些module setting都是根据错误提示进行fix的)。在启动tomcat服务器并部署module 时,出现了上述上面的错误提示。
尝试解决:
根据输出信息,tomcat启动是没问题的。
首先看错误提示,就是说要把log4j-core加入到classpath里面,然后网上各种搜索答案,只能慢慢尝试。首先是加入log4j-core这个包,下载后加入,重启服务器,出现错误:No Log4j2 Configuration file found,继续查找答案,说是要自己配置一个log4j2.xml的文件,搜索可以找到代码。配置完毕还是不行,后来又找到一个答案说是要把log4j-api包也要加入进去,照做。又出现了一个错误:Dispatcher Initialization failed,下面是异常信息。无语!根据提示推测是dispatcher可能有问题,于是查看web.xml,并没有找到错误所在。
正式解决:
此时已花费了大半天的时间,我已失去耐心,就挨个查看各个文件。在查看out(tomcat运行后,会生成一个out目录),里面有两个目录:artifact和production,artifact下是各个module,包含了module的web(eclipse里面是webcontent)和lib信息, 打开web下的web.xml,竟然有错误,这个错误在build时不会提示。而web.xml文件的内容和module-》web-》-》web-inf-》web.xml的内容是完全一致的,这就搞不明白了。索性不管了,既然有错误,直接删除该文件,重启服务器。
奇迹出现,服务器竟然正常部署并运行了,问题解决!
补充信息:
Idea版本为2018.3,新建Struts的module后需要将web.xml中默认的Struts2映射的filter-class由原来的
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 改为
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
因为dispatcher下已没有ng这个包了。
梳理总结:
新建Struts2 module,进行部署前的设置工作,包括tomcat服务器设置与添加,Struts2 lib版本下载,artifact错误fix,修改web.xml等。首次运行会生成out目录,并出现错误,将out-》artifacts-》module名-》web-inf-》web.xml删除,重启服务器即可解决问题。
参考这个已经完美解决了我的问题,主要是手动下载最新的struts2
https://blog.csdn.net/skullFang/article/details/78202338