代码之家  ›  专栏  ›  技术社区  ›  nasaa

将web.xml从2.3升级到2.4时出现问题

  •  1
  • nasaa  · 技术社区  · 14 年前

    我正试图将web.xml从2.3升级到2.4,所以我将web.xml更改为如下内容-

    <?xml version="1.0" encoding="UTF-8"?>
    <!--<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1
    Servlet 2.4//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_4-1.dtd">-->
    
    <!--
        ===========================================================
                               WUI - WEB.XML
        ===========================================================
    --> 
    
    <web-app id="WebApp" xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/
        ns/j2ee/web-app_2_4.xsd"
        version="2.4">
    
        <description>Odyssey Web User Interface</description>
        <display-name>wui</display-name>
    
    
    
    <!-- Uncomment this when setting up the prevent-multiple-login mechanism -->
    <!--
        <listener>
            <listener-class>com.xxx.xxxnListener</listener-class>
        </listener>
    -->
    
        <!--  local cache filter setup -->
        <filter> 
          <filter-name>local-cache</filter-name> 
          <filter-class>com.xxx.xxxcheFilter</filter-class> 
       </filter> 
    ....
    

    weblogic.descriptor.DescriptorException:发现验证问题 问题:cvc-complex-type.2.4a:元素servlet@http://java.sun.com/xml/ns/javaee jsp file@http://java.sun.com/xml/ns/javaee'应为“servlet类”,而不是元素servlet@http://java.sun.com/xml/ns/javaee中的“description@http://java.sun.com/xml/ns/javaee:

    你知道我还能做什么吗。

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  6
  •   Martijn Verburg    14 年前

    你的结构 web.xml 需要更改以传递新的XSD。例如,新的XSD声明web.xml文件应该具有:

    <servlet-class> <jsp-file> 作为当前所在位置的元素 <display-name>

    阅读XSD http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd 要了解更多细节,重组应该不会花太长时间,这样就可以通过。

        2
  •  1
  •   axtavt    14 年前

    Servlet2.4使用的XML模式定义 <xsd:sequence> <servlet> 元素,因此是强制执行这些元素的特定顺序。例如, <servlet-name> 一定是第一个孩子 <servlet>

        3
  •  -1
  •   Sathiamoorthy    7 年前

    使用以下代码将2.3更改为2.5

    <web-app 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">
    
    推荐文章