Проблема при обновлении web.xml до 2.4 с 2.3 - PullRequest
1 голос
/ 11 ноября 2010

Я пытаюсь обновить свой 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-файл @ http://java.sun.com/xml/ns/javaee' вместо' description @ http://java.sun.com/xml/ns/javaee'здесь, в элементе сервлета @ http://java.sun.com/xml/ns/javaee:

Я использую сервер weblogic 10.1.

Любая идея, что мне еще делать.

Спасибо.

Ответы [ 3 ]

6 голосов
/ 11 ноября 2010

Структура вашего 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 для получения более подробной информации, это не займет много времени, чтобы реструктурировать, чтобы он прошел.

1 голос
/ 11 ноября 2010

Определение XML-схемы для Servlet 2.4 использует <xsd:sequence> для описания содержимого элемента <servlet>, поэтому обеспечивает соблюдение определенного порядка этих элементов. Например, <servlet-name> должен быть первым дочерним элементом <servlet>.

0 голосов
/ 11 июля 2018

Используйте приведенный ниже код для изменения 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">
...