Затмение жалуется на атрибуты веб-приложения - PullRequest
18 голосов
/ 09 июля 2011

Объявление моего веб-приложения в моем файле 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 атрибута, вот одна жалоба Затмения:

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

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

Ответы [ 7 ]

30 голосов
/ 20 января 2015

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

11 голосов
/ 27 апреля 2012

Попробуйте поставить так:

<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 очень строг с порядком.

9 голосов
/ 18 сентября 2013

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

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".

3 голосов
/ 03 июля 2013

Разве вы не забыли эту строку в своем 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">

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

1 голос
/ 26 июля 2017

Я изменил декларацию с

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

1 голос
/ 09 июня 2016

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

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

0 голосов
/ 16 июня 2015

Просто удалите DOCTYPE.И работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...