【Maven+SSM】备注:eclipse整合spring的那些坑
场景:接入Spring很简单。会涉及到web.xml中配置添加spring.xml的配置。
<!-- 配置Spring1:配置spring-servlet.xml路劲 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:conf/spring.xml</param-value>
</context-param>
<!-- 配置Spring2:配置Spring监听2 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
问题一、
然而,添加如下代码后web.xml突然间提示错误!错误如下:Description Resource Path Location Type
The content of element type "web-app" must match "(icon?,display-name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,servlet-mapping*,session-config?,mime-mapping*,welcome-file-list?,error-page*,taglib*,resource-env-ref*,resource-ref*,security-constraint*,login-config?,security-role*,env-entry*,ejb-ref*,ejb-local-ref*)". web.xml /mvnstudy02/src/main/webapp/WEB-INF line 5 XML Problem
大概意思就是不支持某些标签的意思。然而我一切都没有问题呀。这是什么原因?我仔细看了一下之后发现web.xml通过Maven自动生成的头文件配置如下:
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
略
</web-app>
解决方案:
将它修改程3.1版本就不再提示错误了!<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
</web-app>
问题二、
看起来没问题了,项目右键,Maven更新项目。又报错如下:
Description Resource Path Location Type
Cannot change version of project facet Dynamic Web Module to 3.1. mvnstudy02 line 1 Maven Java EE Configuration Problem
解决方案:
先找原因,项目右键Properties。发现没办法将2.3改程3.1。无法保存。
既然代码无法修改,那就修改配置文件。项目根目录下 .settings文件夹下有个org.eclipse.wst.common.project.facet.core.xml文件。编辑它!
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v8.0"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.8"/>
</faceted-project>
将2.3改成3.1!重启eclipse后重新右键Maven/更新项目。