0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Eclipse】ページが表示されない(Whitelabel Error Page )

Last updated at Posted at 2023-06-23

はじめに

著者が学習サイトを参考にブラウザへ「おはようございます」と表示させるコントローラーを作った際に、次のエラーが出た時の話です。

エラーページ

存在しないページにアクセスしたときに表示される404エラーでした

スクリーンショット 2023-06-23 8.51.04.png

結論

編集したコントローラーのコードが上書き保存がされておらず、
上書き保存後、ブラウザを更新したら解決しました

データ構造

スクリーンショット 2023-06-23 9.03.35.png

LessonController.javaまでのパス

/Applications/Eclipse_2023-06.app/Contents/workspace/spring_boot_introduction/src/main/java/com/example/controller/LessonController.java

LessonController.javaの内容

LessonController.java
package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping("/lesson")
public class LessonController {

    @GetMapping 
    @ResponseBody
    public String hello() {
        return "おはようございます";
    }

// 結果: "/lesson" にリクエストした場合
// ”おはようございます"と出力される
    
    @GetMapping("/sample")
    @ResponseBody
    public String sample() {
        return "こんにちは";
    }

// 結果: "/lesson/sample" にリクエストした場合
// ”こんにちは"と出力される

    
    @GetMapping("/sample2")
    @ResponseBody
    public String sample2() {
        return "こんばんは";
    }

// 結果: "/lesson/sample2" にリクエストした場合
// ”こんばんは"と出力される


}

SpringBootは実行されている

ポート番号:8080
URL:http://localhost:8080/lesson/
スクリーンショット 2023-06-23 9.15.23.png

なぜ解決策に気付いたのか

作成したLessonController.javaをEclipseではなく
VSCodeで開いた場合、コードがほとんど記述されていなかったため

Eclipseでどのような操作をしたのか(Mac)

Eclipseの画面をアクティブにした状態でCmd+Sにて上書き保存を実行
ブラウザを更新するとコントローラーに記述した内容が反映されていることを確認

スクリーンショット 2023-06-23 8.51.38.png

HTMLが表示されない

次のようにcontrollerのコードを修正した際、上書き保存をするも参照先のHTMLファイルを表示することができませんでした

LessonController.java
package com.example.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/lesson")
public class LessonController {
    @GetMapping("/sample")
    // HTMLをレスポンスにする場合、@ResponseBodyを必ず削除します
    // @ResponseBody
    public String sample() {
        return "index";
    }
}

ファイルやフォルダの構造には問題はありません

index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
 <span>Hello World</span>
</body>
</html>

結論

サーバーを一度停止して、再度サーバーを実行するとHTMLを読み込んで出力できました
スクリーンショット 2023-06-23 17.19.19.png

アプリケーションを再起動する

サーバーが稼働している場合はサーバーを停止させる

サーバーを停止するボタン

スクリーンショット 2023-06-23 16.49.43.png

アプリケーションを実行することによりWebサーバーが起動し、リクエストに応じたプログラムが動くようになります。

今回作成した対象のプロジェクトを右クリックで選択し、
実行Spring Boot アプリケーション を選択します

スクリーンショット 2023-06-23 9.54.30.png

実行することでコンソールに次の表示が出ていれば起動が完了しています

スクリーンショット 2023-06-23 9.56.44.png

ポート番号も8080という番号が表示されています。

/localhost:8080/lesson/sample
Hello World

今後の対策

Eclipseに自動保存の設定を行う

自動保存の設定手順

  1. メニューバーから [Eclipse] > [設定] を選択します。
  2. 左側のリストから [一般] > [エディタ] > [自動保存] を選択
  3. 右側のペインに自動保存の設定が表示される。
  4. [エディタの自動保存を有効にする] チェックボックスを選択
  5. 自動保存を有効にし、自動保存するまでの間隔を指定する
    未保存のエディタが指定した時間が経過すると自動的に保存される

スクリーンショット 2023-06-23 9.22.10.png
スクリーンショット 2023-06-23 9.21.17.png

あとがき

今回のWhitelabel Error Pageというエラーは頻繁に発生しているようでGoogleには結構な数の記事や質問が掲載されていました。フォルダ構造や名前の付け方など様々な解決方法を示されていましたが著者のケースとは該当せず解決に半日を要しました。
解決すると簡単なことでしたが、気づかないうちは難問なのでここに失敗例をアウトプットいたします。誰かのお役に立てれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?