idea 打war 包 WEB-INF下的class文件没打进去

问题:

一、idea打war包的时候, WEB-INF下的class文件没打进去,导致tomcat启动的时候,报

org.apache.catalina.core.ApplicationContext.log No Spring WebApplicationInitializer types detected on classpath

以及java.lang.ClassNotFoundException:com.xxxx.xxx

二、

下面的两种打包方式,分解打包运行正常,直接打war包,运行出上面的问题。

背景:

idea编译常用的有两种方式,就是下图红框中的两个选项。

第一种是打的是分解包,如下图,打出来的就是将war包解压出来的文件。如果程序和打包没问题,你将打出来的文件全部拷贝到tomcat的webapp下面新建的项目文件夹下,是可以直接运行的。

第二种就是最上图中选择红框中第二种方式,这种事直接打war包的方式。

解决方法:

按下图选择Artifact后,

会显示choose Artifacts选择框,选择项目对应的分解Artifact就可以了。

选择过后,会显示

这里红框内的classes在war包的WEB-INF下面,对的class文件也会打进来的。

经验分享 程序员 微信小程序 职场和发展