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

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

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

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

830閲覧

初めてのSpringBoot、serverが上手く接続できない!

monica0

総合スコア6

Java

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

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

0クリップ

投稿2023/09/24 05:48

編集2023/09/25 11:47

ボールドテキスト### 実現したいこと

前提

Windows11
JAVA2022-Java17
Tomchat10.1.13

java version "19.0.2" 2023-01-17
Java(TM) SE Runtime Environment (build 19.0.2+7-44)
Java HotSpot(TM) 64-Bit Server VM (build 19.0.2+7-44, mixed mode, sharing)

システム環境変数
JAVA_HOME_java\jdk-19.0.2
CATALINA_HOME tomcat10.1.13
CLASSPATH tomcat10.1.13-windows-64x\apache

◆エクリプスのTomCatを利用し、fortune.javaを実行中に以下のエラーメッセージが発生しました。

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

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2023-09-24T14:29:39.982+09:00 ERROR 15684 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter  : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

エラーメッセージ翻訳

ApplicationContext の起動中にエラーが発生しました。状態評価レポートを表示するには、「デバッグ」を有効にしてアプリケーションを再実行します。 アプリケーションの起動に失敗しました *************************** 説明: データソースの構成に失敗しました:「url」属性が指定されていないため、埋め込みデータソースを構成できませんでした。 理由: 適切なドライバー クラスを決定できませんでした アクション:次のことを考慮してください。 組み込みデータベース (H2、HSQL、または Derby) が必要な場合は、それをクラスパスに配置してください。 特定のプロファイルからロードするデータベース設定がある場合は、それをアクティブ化する必要がある場合があります (現在アクティブなプロファイルはありません)。

該当のソースコード(HTMLソースコードは割愛の為、記載しておりません)

fortune.java

1package com.example.demo; 2 3import org.springframework.stereotype.Controller; 4import org.springframework.web.bind.annotation.GetMapping; 5 6@Controller //アノテーション 7public class fortune { 8 9 @GetMapping ("/fortune") 10 public String start() { 11 double fn = Math.random();//0.0~0.1の乱数 12 if(fn >=0.7) { 13 return"greatFortune.html"; 14 }else if (fn >=0.4) { 15 return "middleFortune.html"; 16 }else if (fn >=0.1) { 17 return "smallFortune.html"; 18 }else { 19 }return "misFortune.html"; 20 } 21 22} 23

試したこと

1.エクリプスに、そもそもTomCat機能が導入されているのに、手動でdownloadを行ったので2重に複合されてないか環境変数を確認しましたが「tomcat」が複数見た感じ見当たらない

2.進行状況確認:この時点では表示する操作はありません
localhostのサーバーを、Tomcat10(Java17)を再度追加したが変化なし

見解原因:serverが上手く接続されてないと思われるのですが、ほかに考えられる確認方法、原因と解決が分かりません。詳しい方猿でも分かるように説明頂けると幸いです。

![イメージ説明]削除済

説明に不明点や不十分な部分あればご指摘頂けると幸いです。

補足追加

buiid.gradle

1plugins { 2 id 'java' 3 id 'org.springframework.boot' version '3.1.4' 4 id 'io.spring.dependency-management' version '1.1.3' 5} 6 7group = 'com.example' 8version = '0.0.1-SNAPSHOT' 9 10java { 11 sourceCompatibility = '17' 12} 13 14configurations { 15 compileOnly { 16 extendsFrom annotationProcessor 17 } 18} 19 20repositories { 21 mavenCentral() 22} 23 24dependencies { 25 implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' 26 implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' 27 implementation 'org.springframework.boot:spring-boot-starter-validation' 28 compileOnly 'org.projectlombok:lombok' 29 annotationProcessor 'org.projectlombok:lombok' 30 testImplementation 'org.springframework.boot:spring-boot-starter-test' 31} 32 33tasks.named('test') { 34 useJUnitPlatform() 35} 36

setting.gradile

1rootProject.name = 'Sample-spring' 2

fortune.java修正版

1package com.example.demo; 2 3import org.springframework.stereotype.Controller; 4import org.springframework.web.bind.annotation.GetMapping; 5import org.springframework.web.bind.annotation.RequestMapping; 6 7 8@Controller //アノテーション 9public class fortune { 10 11 @GetMapping("/fortune") 12 @RequestMapping // 13 public String start() { 14 double fn = Math.random();//0.0~0.1の乱数 15 if(fn >=0.7) { 16 return"greatFortune.html"; 17 }else if (fn >=0.4) { 18 return "middleFortune.html"; 19 }else if (fn >=0.1) { 20 return "smallFortune.html"; 21 }else { 22 }return "misFortune.html"; 23 } 24 25} 26

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

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

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

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

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

guest

回答1

0

ベストアンサー

Spring Bootでは、application.propertiesのspring.datasource.urlに設定されている値をもとに、利用しようとしてるDBMSとそのドライバを自動で特定します。この自動で特定する際に、特定したDBMSに接続できるドライバが見つからないため、エラーになっています。

  1. application.propertiesのspring.datasource.urlにはどのような値を設定していますか?
  2. どのようなDBMSを利用する想定ですか? そのデータベースのドライバは導入されていますか? (導入されていれば、build.gradleに記載されているはず)

投稿2023/09/24 07:36

neko_the_shadow

総合スコア2273

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

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

monica0

2023/09/24 10:27 編集

回答ありがとうございます DBMSとそのドライバを自動で特定するという理解が出来てなかったのでご説明助かります。 buiid.gradleとsetting.gradileを補足で記事に追加させて頂きました。 application.propertiesは、緑の葉っぱの様なマークでしょうか? こちら何も記載されておりませんでした。(値が分かりません) データベース管理システムは、tomcatというwebサーバーのみではダメなのでしょうか ※今回MySQLなど使わず、webサーバーのみの利用を前提とした実行をしたいです spring.datasource.url プロパティを設定して、少なくとも URL を指定する必要があり、そうでない場合、Spring Boot は組み込みデータベースの自動構成を試めすということで合ってますでしょうか、具体的に何処を参照しどう処理すべきなのでしょうか?
neko_the_shadow

2023/09/24 10:53

> implementation 'org.springframework.boot:spring-boot-starter-data-jdbc' build.gradle の この記載が不要だと思われます。このライブラリに自動でドライバを探す機能があり、悪さをしていそうです。 > データベース管理システムは、tomcatというwebサーバーのみではダメなのでしょうか これは可能ですが、Spring Data JDBCがライブラリに入っているため、Spring Bootが自動でDBMSを利用すると判定している可能性があります。ちなみにSpring Bootを利用されている場合、tomcatなどのWebコンテナは不要です (Spring Boot内に組み込まれているので)
monica0

2023/09/24 13:59 編集

>//implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'が不要 ・コメントアウトをしたら実行コンソールは無事errorが消えたのですが、 fortune.javaソースコードのインポートされたimportorg.springframework.web.bind.annotation.GetMapping;が見つかりません。 @GetMapping を型に解決できませんとソースのエラーが発生しました。 こちらに関しては、注釈を作成とひらめきマークに選択があるのでそちらで作成すべきなのでしょうか。 >Spring Data JDBCがライブラリに入っているため、Spring Bootが自動でDBMSを利用すると判定している可能性があります。 ・JDKは自動でDBMSを利用されている可能性があるので、> implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'を、オフに、tomcatも手動でDL不要という認知で良いでしょうか。
neko_the_shadow

2023/09/25 04:47

>fortune.javaソースコードのインポートされたimportorg.springframework.web.bind.annotation.GetMapping;が見つかりません。 >@GetMapping を型に解決できませんとソースのエラーが発生しました。 implementation 'org.springframework.boot:spring-boot-starter-web' が不足していそうです。
monica0

2023/09/25 08:05

build.geadleの、dependencies {に、implementation 'org.springframework.boot:spring-boot-starter-web' を追加。※ 動かしっぱなしのTomcatを止めてから起動 すると、エクリスプ上のerrorが直りました。 http://localhost:8080/ で"This application has no explicit mapping for /error" Controllerアノテーションの前にRequestMappingアノテーションで表示成功しました! >@RequestMappingアノテーションの属性のvalue属性は、メソッドやクラスに紐づけるURLのパスを指定する属性です。 質問攻めですみません、有難うございました!!  springbootの基礎知識が欠けてる状態では危険だと感じました。プログラミングするにおいて、ドキュメントを読むと大抵の基礎は付くものなのでしょうか?(今回動作慣れだったので、そもそも必要不可欠なものがかなり不足していました)
neko_the_shadow

2023/09/25 09:02

> プログラミングするにおいて、ドキュメントを読むと大抵の基礎は付くものなのでしょうか? Spring Bootに関する基礎的な知識が不足されているとのことでしたら、まずはチュートリアルや入門書などの、初心者向けの大罪に取り組まれることをお勧めします。そこで基礎的な知識や概念を身に着けたあとは、実際の課題に取り組みつつ、困りごとが出てきたらドキュメントやリファレンスをちょこちょこ読んでいけばよいかと思います。
monica0

2023/09/25 11:20 編集

女性で、エンジニアや今の環境聞ける人居なかったので助かりました!コメント参考にさせて頂きます、ご回答有難うございました。┏○))
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問