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

时间:2010-11-11 16:51:57

标签: java servlets weblogic

我正在尝试将我的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-class @http://java.sun.com/xml/ns/javaee jsp-file @http://java.sun.com/xml/ns / javaee'而不是'display-name @ http://java.sun.com/xml/ns/javaee'元素servlet @ http://java.sun.com/xml/ns/javaee:     问题:cvc-complex-type.2.4a:预期元素'servlet-class @http://java.sun.com/xml/ns/javaee jsp-file @http://java.sun.com/xml/ns / javaee'而不是'description @ http://java.sun.com/xml/ns/javaee'元素servlet @ http://java.sun.com/xml/ns/javaee:

我正在使用weblogic 10.1服务器。

知道我还应该做些什么。

感谢。

3 个答案:

答案 0 :(得分:6)

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

<servlet-class><jsp-file>作为您当前拥有<display-name>

的地方的元素

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd阅读XSD以获取更多详细信息,重组时间不应太长,以便通过。

答案 1 :(得分:1)

Servlet 2.4的XML Schema定义使用<xsd:sequence>来描述<servlet>元素的内容,因此强制执行这些元素的特定顺序。例如,<servlet-name>必须是<servlet>的第一个孩子。

答案 2 :(得分:-1)

使用以下代码将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">