質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

6338閲覧

Eclipseを立ち上げるたびにweb.xmlでコンパイエルエラーが発生する

syo2369

総合スコア25

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

1クリップ

投稿2018/04/19 03:01

編集2018/04/19 06:06

前提・実現したいこと

web.xmlのコンパイルエラーを回避したい。
Eclipseを立ち上げるたびにweb.xmlにコンパイルエラーが発生しました。
「試したこと欄」の方法でコンパイルエラーを回避できるが、再度Eclipseを立ち上げると、またコンパイルエラーが発生する。

該当のソースコード

src
┗web
_ ┝FirstServlet.java
_ ┝InitParamServlet.java
_ ┗SecondServlet.java

web.xml

<?xml version="1.0" encoding="Windows-31J"?> <web-app> <servlet> <servlet-name>first</servlet-name> <servlet-class>web.FirstServlet</servlet-class> </servlet> <servlet> <servlet-name>second</servlet-name> <servlet-class>web.SecondServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/first</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>second</servlet-name> <url-pattern>/second</url-pattern> </servlet-mapping> <servlet> <servlet-name>initparam</servlet-name> <servlet-class>web.InitParamServlet</servlet-class> <init-param> <param-name>param</param-name> <param-value>InitParam</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>initparam</servlet-name> <url-pattern>/initparam</url-pattern> </servlet-mapping> </web-app>

発生している問題・エラーメッセージ

12行目「first</」にて「Element "最初" not found.」 16行目「second</」にて「Element "秒" not found.」 28行目「initparam</」にて「Element "initparam" not found.」

試したこと

①web2.xmlを作成し、web.xmlの内容をコピペ。
②web.xmlを削除。
③web2.xmlのファイル名をweb.xmlに修正。

以上の手順でコンパイルエラーを回避できている。

補足情報(FW/ツールのバージョンなど)

Eclipse neon
Java 8

作成方法は以下を参考にした。
http://www.knowledge-ex.jp/opendoc/JavaWebAppDevelopment.pdf

追記:
プロジェクトのクリーン、リフレッシュも試みたのを忘れていました。
結果としてはプロジェクトのクリーン、リフレッシュをしても変わらずでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/19 03:06

エラーを削除(隠蔽)しているだけですね
m.ts10806

2018/04/19 03:54

文法上のミスとか設定上の不整合とかがあるのではないでしょうか?
syo2369

2018/04/19 04:12 編集

asahina1979さん 申し訳ございません。エラーを削除(隠蔽)だとしたら、何故サーブレットは正常に動いてしまうのでしょうか?そもそもエラーだとしたら、正常に動かないものだと思いました。
syo2369

2018/04/19 04:14

mts10806さん サーブレットは正常に動いているので文法上のミスは考えにくいかと思います。設定上の不整合であるとしたら、参考サイトと異なる点としてtomcatではなくpayaraを使用しているのが怪しいかもしれません。
syo2369

2018/04/19 04:17

お二方の指摘が正しいとしたら、具体的に回答を頂けないでしょうか?文法上のミスはしていないと思っております。
syo2369

2018/04/19 04:20

javaのソースは関係ないと思い記載していませんが、関係があるようでしたら言って頂ければ追記致します。(今回関係あるのはクラス名のみと考えています)
Lulucom

2018/04/19 04:42

手動でweb.xmlを作成されましたか?それとも何らかのツールで自動生成されましたか?
syo2369

2018/04/19 04:49

lulucomさん 記憶は曖昧で申し訳ないのですが、動的プロジェクトを作成した後に手動で作成したと思います。
Lulucom

2018/04/19 04:52

ありがとうございます。web.xml内のコメントにある「Element "最初" not found.」とかはエラーメッセージだと思えばよろしいですか?もしそうだとすれば、回答者が気づきにくいので、web.xml内にコメントとして書かずに、エラーメッセージなどとして別に書かれた方がわかりやすいと思います。
syo2369

2018/04/19 05:04

指摘ありがとうございます。エラーメッセージを外だししました。
Lulucom

2018/04/19 05:06

ありがとうございます。きっと first -> 最初、second -> 秒 と見なされてしまってるんですね。
syo2369

2018/04/19 05:17

最初、秒と見なされてるのもそうですが、</までコンパイルエラーになっているのが何故だかわかりません。回答のほうでエラーの対応することができたので、そちらでまたコメント致します。
syo2369

2018/04/19 05:54

mts10806さん 文法?設定上?のミスだったようです。知識不足で大変失礼致しました。
guest

回答1

0

ベストアンサー

xmlns属性等が無いためではないでしょうか。
サーブレットのバージョンによって違うと思いますが、例えば以下のような記述でないといけない気がします。

web.xml

<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> ...省略... </web-app>

(追記)
Eclipseで、プロジェクトを作成するときや、後からweb.xmlを生成させる機能があったかと思いますので、それを利用されるのが良いかと思います。

投稿2018/04/19 04:47

編集2018/04/19 05:44
Lulucom

総合スコア1899

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Lulucom

2018/04/19 05:30 編集

ありがとうございます。例であげたのは3.1のようですが、最新版は4.0(?)かと思います。お使いのバージョンと合っていますか?
syo2369

2018/04/19 05:32

私の環境で動的プロジェクトを生成する際に、xmlを自動生成した<web-app ~~~>の内容が異なるのですが、環境の違いによるものでしょうか? また、xmlns属性とは一体何者でしょうか?今回はxmlns属性を追加することによって解決することができたと思うのですが、調べてみても何かを指定している程度にしか理解することができませんでした。
syo2369

2018/04/19 05:47 編集

回答して頂いたバージョンは3.1ので、新規プロジェクトでweb.xmlを自動生成した際のバージョンも3.1だったので問題なさそうです。 ただ、上記に記述したように<web-app ~~>の内容が若干異なっていました。 私の環境で自動生成してできたものは以下になります。(現在は私の環境で自動生成した際にできた<web-app ~~~>でweb.xmlを書き直しました。) <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
Lulucom

2018/04/19 05:39

例として挙げたのはどっかからコピペしてきたやつで、あくまで例ですので、syo2369 さんの環境で自動生成した方を採用してください。 xmlns属性はXMLの名前空間を宣言するためのものです。今回のエラーは名前空間がちゃんと宣言されてなかったので、firstとかsecondが「要素」と見なされてしまった(?)のではないでしょうか。
Lulucom

2018/04/19 05:42

すみません、不正確なものを回答に載せておくのはまずいので、syo2369 さんの書かれた内容に修正いたします。
syo2369

2018/04/19 05:51

了解しました。私の環境で自動生成したものをこのまま使うことに致します。 xmlns属性...名前空間...調べてみましたがいまいち分からないです。 xmlsn属性、名前空間に関しては今回の投稿と離れてしまうので、今後調べてみることにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問