前幾天發佈應用時出現瞭如下所示的一段錯誤提示信息:

weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND

problem: cvc-enumeration-valid: string value '3.0' is not a valid enumeration value for web-app-versionType in namespace http://java.sun.com/xml/ns/javaee:<null>

根據錯誤的提示信息大概可以判斷是一個和版本有關的驗證問題,又看到有"web-app",所以推斷是web.xml文件中的問題!百度了一下,看看其他同仁是怎麼分析和解決這個問題的!

沒錯,是web.xml文件中的配置和Weblogic應用服務器(我們的應用服務器是:WebLogic Server 版本: 10.3.6.0)有不匹配的地方,weblogic10.3.6不支持web-app_3_0.xsd的定義!

1:報錯時項目中web.xml的web-app元素的配置如下所示

<web-app 
                   version="3.0"
                   xmlns="http://java.sun.com/xml/ns/javaee" 
                   xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      >

2:修改成如下所示的形式就沒有這個小問題了

<web-app 
                   version="2.5"
                   xmlns="http://java.sun.com/xml/ns/javaee" 
                   xmlns:jsp="http://java.sun.com/xml/ns/javaee/jsp"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
                   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      >

恩,解決問題的大概思路就是這樣了,先仔細的弄明白錯誤的提示信息是什麼意思,如果能搞定或者有思路就試驗試驗。如果思路不暢就百度看看其他的網友是怎麼分析和解決這個問題的,一般而言許多開發中所遇到的問題在網上多少都會有些解決方案的,如果找不到比較匹配的方案,也可能會想到一些解決問題的新思路,實在不行就問問同事查查書本,最後還是解決不了就請專家們幫忙看看!哈哈,不過一般三步就差不多了!