在写web.xml的时候又一次总是报cvc-complex-type.2.4.a: Invalid content was found starting with element 错误,还出现小红叉,在网上找了很多,有说是把报红叉的代码写在之间,试了之后发现完全没用。
后来在外文网站上找到了一个方法就把问题解决了
解决方法一:
在eclipse中配置xml
http://www.springmodules.org/schema/cache/springmodules-cache.xsd
http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd
然后再将这两个xsd加入到web.xml中就搞定了 ,如下面代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance http://www.springmodules.org/schema/cache/springmodules-cache.xsd http://www.springmodules.org/schema/cache/springmodules-ehcache.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<!--OS Work Flow -->
<display-name>OSWorkflow Example App</display-name>
<description>OSWorkflow Example App</description>
<servlet>
<servlet-name>SOAPWorkflow</servlet-name>
<servlet-class>
com.opensymphony.workflow.soap.SOAPWorkflowServlet
</servlet-class>
</servlet>
<servlet>
<description>
This is the description of my J2EE component
</description>
<display-name>
This is the display name of my J2EE component
</display-name>
<servlet-name>Osworkflow</servlet-name>
<servlet-class>net.caiban.servlet.Osworkflow</servlet-class>
</servlet>
<servlet>
<description>
This is the description of my J2EE component
</description>
<display-name>
This is the display name of my J2EE component
</display-name>
<servlet-name>DoWorkflow</servlet-name>
<servlet-class>net.caiban.servlet.DoWorkflow</servlet-class>
</servlet>
<servlet>
<description>
This is the description of my J2EE component
</description>
<display-name>
This is the display name of my J2EE component
</display-name>
<servlet-name>CreateWorkflow</servlet-name>
<servlet-class>net.caiban.servlet.CreateWorkflow</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>SOAPWorkflow</servlet-name>
<url-pattern>/soap/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Osworkflow</servlet-name>
<url-pattern>/servlet/Osworkflow</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DoWorkflow</servlet-name>
<url-pattern>/servlet/DoWorkflow</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CreateWorkflow</servlet-name>
<url-pattern>/servlet/CreateWorkflow</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>default.jsp</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<res-ref-name>jdbc/oswf</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driverClassName="com.mysql.jdbc.Driver" />
<init-param url="jdbc:mysql://localhost:3306/osworkflow" />
<init-param user="root" />
<init-param password="123465" />
<init-param max-connections="20" />
<init-param max-idle-time="30" />
</resource-ref>
<!--OS Work Flow -->
</web-app>
解决方法二:
true是web.xml 3.0的新特性,只需将
改成:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
即可解决