私の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がこれらの属性について文句を言うのはなぜですか?ここで何か悪いことをしていますか?
DOCTYPE行を削除します。これは、xsdが置き換えるものです。私は同じ問題を抱えていましたが、これだけがうまくいきました。
このように入れてみてください:
<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バリデーターは、注文に関して非常に厳密です。
私も同じ問題を抱えていました。別のスキーマの場所を試しましたが、うまくいきました。の代わりに
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"
に設定します。
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">
それがうまくいかない場合は、プロジェクトを更新してください。
宣言を
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 ">
すべてがJava EE 7で発表されたことを知るには this Oracle.comリンクを参照してください(これが私たちが取り組んでいるものと想定しています)。リンクの状態
新しいスキーマはすべて http://xmlns.jcp.org/xml/ns/javaee/ 名前空間にあります。
名前空間Java.Sun
はJava.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>
これが質問に答えることを願っています。
DOCTYPEを削除するだけです。そして、その作品はうまくいきます。