今天下午一直在解决一个问题,就是我按照教程在IDEA中照常部署Tomcat服务器,但是一直报错,报错信息如下:
Connected to server
[2021-07-25 05:38:49,515] Artifact SSM:war exploded: Artifact is being deployed, please wait...
...
[2021-07-25 05:38:49,809] Artifact SSM:war exploded: Error during artifact deployment. See server log for details.
我找了很多网上的教程,都只是让我部署Tomcat服务器,我做了很多很多遍,感觉还是无济于事。
于是我重新新建了一个Maven项目,然后部署Tomcat服务器,发现很成功,我很惊讶,当我配置好web.xml文件,然后再重新启动Tomcat服务器时,我发现居然和之前的错误一样,于是我就明白我的错误就是出现在web.xml配置文件中,于是我逐个排查,发现下面这个spring的字符编码encodingFilter的问题:
<!--encodingFilter-->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我把它删了,发现可以运行Tomcat服务器了,于是我在网上找到了一些解决方案,发现我明明已经在maven下配置了依赖spring的CharacterEncodingFilter依赖包,CharacterEncodingFilter的依赖如下所示:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>
但好像IDEA在Tomcat启动时没办法识别和打包这些依赖包,要自己手动添加。
手动添加包的教程如下所示:
首先,在点击File下的Project Structure:
其次,点击Artifacts,然后点击WEB-INF文件夹,最后点击文件包,也就是2所指向的按钮。
接着,在弹出的窗口输入lib,以此来新建lib文件夹。
第三,点击lib文件夹后点击如同所示的按钮来添加jar包。
第四,将所有的jar包加入。
然后,点击apply和OK来完成这些操作。
最后,重启Tomcat服务器,成功启动了Tomcat。