【背景】利用SSM框架在IDEA进行系统后端开发,点击run(绿色右向小三角)后server处出现下图所示的报错。
【常规解决方法】经过一番检索后,尝试了常见的解决方法
1、依次点击 File | Settings,检查maven路径是否正确
2、依次点击 File | Project Structure,检查Artifacts 是否正常
很多博客会建议直接删掉原来的所有war,即上图第二列的两行。具体操作:单击要删除的行,点击上方的减号“—”。
然后重新添加war。具体操作:点击上方的加号“+”,依次选择Web Apllication:Exploded | From Modules。(改完记得点击右下角的OK或者Apply哦)
3、点击下图红框框出,然后点击Edit Configuration
首先在Server界面,检查Tomcat和JDK的路径
然后切到Deployment界面,检查artifact deployment的设置。有两处地方需要检查,记得下拉右侧的滚动条。artifact这一行的最左边要出现下图这种菱形小图标才是正确的,如果是红字且无图标说明出错了。
很多博客会建议直接删掉这两个原来的artifact重新添加。方法与2类似。最好先删下面的Build(Before Launch中的),再删上面的。添加的时候直接添加上面的,下面的会自动出现,没出现就手动添加。
【我所用的解决方法】
以上地方我都检查过,且更新过pom,重启过IDEA,都没用。
经历了一番曲折,求助了学姐帮忙远程看了一下,终于找到了问题的关键。(大家注意要看看log的信息,会有你遇到的问题的详细描述)
原来是程序找不到mybatis文件夹和db.properties了。
这两个路径都是定义在applicationContext-dao.xml文件里的。于是我把这俩直接复制到了java文件夹底下。启动,成功运行了!
但我觉得这终归怪怪的,询问师姐后,发现她并没有挪到java底下,这俩都好好的待在resources文件夹里面。
而且我总觉得resources这个词儿特别眼熟!应该在我痛苦的摸索阶段中看到过!经过一番寻找,在Project Structure的Modules里找到了它!
我灵机一动,把resources文件夹标记为了Resources。删掉了java文件夹底下的。运行成功了!!!
思考:感觉系统一般会自动去resources底下找classpath,但是我之前没有把项目中名为resources文件夹“标记”为Resources(通常系统会自动找同名文件夹,但有时候也会“瞎了”,也有可能是因为首字母大小写不一样?),所以系统找不到该文件夹内的文件了。