我很好奇这个web.xml
代码发生了什么,我在Eclipse(juno版本)cvc-complex-type.2.3: Element 'context-param' cannot have character [children], because the type's content type is element-only.
视图中遇到此错误Markers
。
以下是代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID"
version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>Spring security web application (series)</display-name>
<!-- to specifically stop trouble with multiple apps on tomcat -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>customauth_root</param-value>
</context-param>
<!-- Location of the XML file that defines the root application context
applied by ContextLoaderListener. -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
WEB-INF/applicationContext.xml
WEB-INF/applicationContext-security.xml
</param-value>
</context-param>
<!-- Loads the root application context of this web app at startup. The
application context is then available via WebApplicationContextUtils.getWebApplicationContext(servletContext). -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Provides core MVC application controller. See customauth-servlet.xml. -->
<servlet>
<servlet-name>customauth</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>customauth</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>customauth</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:9)
对于初学者,您在XML节点param-value
中使用非法字符您不得使用“/”,“&lt;”和节点内的其他字符,因为它将破坏XML文档的解析。
您应该在XML节点内围绕您的值使用CDATA或PCDATA包装器。
e.g。
<param-value><![CDATA[
WEB-INF/applicationContext.xml
WEB-INF/applicationContext-security.xml]]>
</param-value>
这就是造成问题的原因。
答案 1 :(得分:2)
某些不可见的字符不被视为XML空格,因此会显示错误。通过配置Eclipse“文本编辑器”首选项来显示所有空格字符,然后突出显示的是粗体字符。您还可以使用此工具验证XML文件:
xmllint --noout --schema http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd XML_FILE
答案 2 :(得分:0)
您正在评论结束标记,再次查看<filter-mapping>
:
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern> /*</url-pattern>
</filter-mapping>`
答案 3 :(得分:0)
此错误仅表示您在xml中有一个错字。尝试格式化您的XML,您的拼写错误将脱颖而出。