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

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

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

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

Q&A

解決済

1回答

2235閲覧

STS にてNot Foundエラーが出力される

takuyaK.

総合スコア5

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

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

0グッド

0クリップ

投稿2021/07/19 12:45

編集2021/07/20 13:05

前提・実現したいこと

PostgreSQLを使用して、簡単なWebアプリを作成しています。
開発環境はSTSを使用しており、初めにWebアプリの画面表示の段階でつまずいております。
STS上では特にエラーは発生していませんが以下のようなエラーメッセージが出ております。
ワークスペースには複数のプロジェクトが存在する為、ポート番号は8082を指定しております。

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

There was an unexpected error (type=Not Found, status=404). No message available

コントローラークラス

package com.example.todoList.controller;

import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.ModelAndView;
import com.example.todoList.entity.Todo;
import com.example.todoList.repository.TodoRepository;

import lombok.AllArgsConstructor;

@Controller
@AllArgsConstructor
public class TodoListController {

private final TodoRepository todoRepository; @GetMapping("/todo") public ModelAndView showTodoList(ModelAndView mv) { mv.setViewName("todoList"); List<Todo> todoList = todoRepository.findAll(); mv.addObject("todoList", todoList); return mv; }

}

application.properties

server.port=8082

spring.jpa.database=POSTGRESQL
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/todo
spring.datasource.username=postgres
spring.datasource.password=thand0126

spring.sql.init.mode=always
spring.jpa.open-in-view=true

イメージ説明

Java、Spring Boot、PostgreSQL

試したこと

他のプロジェクトのポート番号を使用して再度ビルド(ポート番号は一意に設定)しましたがうまくいきません。
これれまでのプロジェクトは正常にビルドできていたので、今回のアプリが問題あると思っています。
また、全く使った事がないポート番号も設定しましたが、上手くいきませんでした。
どなたかお分かりになりましたら、ご教示ください。よろしくお願いします。

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

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

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

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

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

kiino

2021/07/22 14:13

問題解決してたら close しておいてくださいー
takuyaK.

2021/07/25 05:16 編集

ありがとうございます。closeしました。
guest

回答1

0

自己解決

STS を再起動すると問題解決しました!
リクエスト処理が正常に行われてそうにもかかわらず、404のエラーが起きる場合はゴミが溜まっていることがあるようで、その際は再起動することでゴミが取り除かれることがあるようです。

投稿2021/07/25 05:14

takuyaK.

総合スコア5

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

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

kiino

2021/07/25 05:22

解決したようで何よりです。 DB側の設定でテーブルにアクセスできなかったことも原因かと思われます。 データを取得するときにJPAに設定したユーザーに参照権がなく、実行時に例外がでて、 エラー画面である /error にリダイレクトしようとしたが、そのエラー画面の設定もなかったので404になっていました。 そういった設定を修正しても404になったのはホットリロード時に誤ったままのデータがキャッシュされて、正しい情報が更新されなかったので、原因の特定が困難になっていたと思われます。 (ゴミというところ。再起動すればメモリ上に保存されたキャッシュも破棄され、新規に正しい接続情報でアプリケーションが起動する)
kiino

2021/07/25 05:26

正常にリクエストできない(404になっていた)のは、DBなどのミドルウェアの設定が原因だったのですが、 その原因を特定する(切り分け)のに、 自動更新機能をつかいながら行うと設定変更がSpringBootに反映されないばあいがあるので、 切り分けするときはIDEから直接アプリの再起動をするほうがよさそう。という話になります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問