IDEA中启动tomcat出现Error configuring application listener of class org.springframework.web.context.

背景:第一次用idea中的springmvc框架搭建一个小的Demo,第一个程序好不容易能够跑起来,我用新建了一个新的项目,同样的程序,结构启动tomcat时报错:Error configuring application listener of class org.springframework.web.context.ContextLoader

 原因:Artifacts没有正确配置。

打开你的Project Structure,看看你项目的WEB-INF下面有没有lib,一般你报这个错,是没有lib的

解决办法:方法1,

右键点击最右边的Gogo,选择put into OutPut Root,这样它就会自动在左边的<Output root>下的WEB-INF目录下自动创建一个lib,并把jar包放进去,这样,重启一下tomcat,就发现target里边有lib啦!我的web.xml中的类找不到的问题也解决了。

 

解决办法:方法2,

选择Artifacts,删除原有的war包,重新添加即可。(前提是你已经配置好了Facets)

1, 删除,删除后就什么都没有了 

2,重新添加Artifacts

Project Structure--》Artifacts,点击其中的”+“号:选项中有web application exploded,这个是以文件夹形式(War Exploded)发布项目,选择这个,发布项目时就会自动生成文件夹在指定的output directory中,

 

之后会发下WEB-INF下面的lib包出来了。但是还要去Edit configuration里面重新Deployment中添加aArtifacts,具体步骤见tomcat配置(我的另一篇博文)

Facets([ˈfæsits] )和Artifacts( ['ɑrtɪfækts])的区别:
Facets 表示这个module有什么特征,比如 Web,Spring和Hibernate等; 
Artifact 是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;
一个module有了 Artifacts 就可以部署到应用服务器中了!

在给项目配置Artifacts的时候有好多个type的选项,exploed是什么意思:
explode 在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
默认情况下,IDEA的 Modules 和 Artifacts 的 output目录 已经设置好了,不需要更改,打成 war包 的时候会自动在 WEB-INF目录 下生产 classes目录,然后把编译后的文件放进去。

猜你喜欢

转载自blog.csdn.net/Quantum_Dog/article/details/88843852