web-dev-qa-db-ja.com

EclipseがWebアプリの属性について不平を言っている

私のweb.xmlでの私のweb-app宣言は:

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

そして、Eclipseは4つすべての属性について不平を言っています。

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

Eclipseがこれらの属性について文句を言うのはなぜですか?ここで何か悪いことをしていますか?

18
Mark Kadlec

DOCTYPE行を削除します。これは、xsdが置き換えるものです。私は同じ問題を抱えていましたが、これだけがうまくいきました。

32
Ondrej Tokar

このように入れてみてください:

<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バリデーターは、注文に関して非常に厳密です。

12
nachoorme

私も同じ問題を抱えていました。別のスキーマの場所を試しましたが、うまくいきました。の代わりに

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"に設定します。

9
Arif Hossain

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

それがうまくいかない場合は、プロジェクトを更新してください。

3

宣言を

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

2
mannedear

すべてがJava EE 7で発表されたことを知るには this Oracle.comリンクを参照してください(これが私たちが取り組んでいるものと想定しています)。リンクの状態

新しいスキーマはすべて http://xmlns.jcp.org/xml/ns/javaee/ 名前空間にあります。

名前空間Java.SunJava.Oracleに変更されていませんが、代わりに The Java Community Process(JCP) によって保持されています。したがって、Java EE 7ドキュメントでも指摘されているように、すべての名前空間はxmlns.jcp.orgを指す必要があります。

ここで、Webアプリケーションをデプロイするとき(したがって、web.xmlを定義する必要があるとき)、最初に、何をするつもりなのかを知る必要があります。

たとえば、Apache Tomcat V8を使用しているとします。ドキュメント here を読むと、サーブレット3.1がバンドルされていることがわかります。だから、私はサーブレット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>

これが質問に答えることを願っています。

1
Chiranjib

DOCTYPEを削除するだけです。そして、その作品はうまくいきます。

0
Sachin