Подтвердить что ты не робот

Eclipse жалуется на атрибуты веб-приложения

Объявление моего веб-приложения в моем web.xml:

<web-app version="2.4"
         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" >

И затмение жалуется на все 4 атрибута, вот одна жалоба Eclipse:

Attribute "version" must be declared for element type "web-app"

Почему Eclipse жалуется на эти атрибуты? Я здесь что-то не так?

4b9b3361

Ответ 1

Удалите строку DOCTYPE, это означает, что xsd предназначен для замены. У меня была такая же проблема, и только это сработало.

Ответ 2

Попробуйте сделать так:

<web-app  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" >

Валидатор Eclipse очень строгий с порядком.

Ответ 3

У меня была та же проблема. Я попробовал другое расположение схемы, и это сработало для меня. Вместо

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

попробуйте использовать

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd

Также установите версию как "3.0".

Ответ 4

Разве вы не забыли эту строку в вашем XML файле?:

    <?xml version="1.0" encoding="ISO-8859-1"?>

Ваш файл должен начинаться следующим образом:

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app 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" version="2.5">

Если он не работает и обновляет ваш проект,

Ответ 5

Обратитесь к этой ссылке oracle.com, чтобы узнать, что было объявлено с помощью Java EE 7 (при условии, что это то, с чем мы работаем), Состояние связи

Все новые схемы находятся в http://xmlns.jcp.org/xml/ns/javaee/Пространство имен.

Пространство имен java.sun не стало java.oracle, вместо этого оно было сохранено Процесс сообщества Java (JCP). Следовательно, все пространства имен должны указывать на xmlns.jcp.org, как также указано в документах Java EE 7.

Теперь, когда мы развертываем веб-приложение (и, следовательно, необходимо определить web.xml), сначала мы должны знать, что мы намерены делать.

Скажем, мы работаем с Apache Tomcat V8. Если мы читаем docs здесь, мы узнаем, что он поставляется вместе с пакетом Servlet 3.1. Итак, я бы предпочел реализацию Servlet 3.1, просто чтобы оставаться в курсе, если не что-то еще.

Теперь все, что сказано, это объявление, которое я имел бы

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

</web-app>

Надеюсь, что это ответит на вопрос.

Ответ 6

Я изменил объявление из

http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" >

к следующему, и он работал как шарм. Теперь никаких ошибок, отображаемых в web.xml

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" >

Ответ 7

Просто удалите DOCTYPE. И его работы прекрасны.