1. 程式人生 > >The content of element type "web-app" must match……問題之解決辦法

The content of element type "web-app" must match……問題之解決辦法

轉載自:http://blog.163.com/[email protected]/blog/static/47452426201041435525524/

在flex整合java生成的web.xml中新增引用servelet的程式碼就報錯如下:

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*)". eoso/WebRoot/WEB-INF        web.xml line 5

新增的程式碼如下:

   <servlet>
     <servlet-name>downLoadServlet</servlet-name>
     <display-name>downLoadServlet</display-name>
     <servlet-class>jp.co.snjp.eos.web.odermanger.service.DownLoad</servlet-class>
    </servlet>
    
    <servlet-mapping>
     <servlet-name>downLoadServlet</servlet-name>
     <url-pattern>/download</url-pattern>
    </servlet-mapping>
如果把新增的程式碼刪掉,web.xml就正常了,不會顯示錯誤。但是這段程式碼是flex下載呼叫服務端的servlet用的,必須新增。說明,網上都是說順序問題,但我已經按照icon?,display-name?,description?,distributable等等這種順序新增節點的,但還是錯誤。

後來,我把  <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">這一段校驗程式碼刪掉,問題就解決了。原因是:我新增的那部分程式碼符合xml文件規範,但不符合web-app_2_3.dtd所定義的規範。