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

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

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

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Tomcat

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

Spring Boot

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

Q&A

解決済

1回答

2253閲覧

Error creating bean with name 'h2Console' defined in class path resource

Sean2014

総合スコア59

Java

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

Gradle

Gradleは、ビルド自動化ツールです。 ソフトウェアパッケージやドキュメント、 または実際に何か他の種類のプロジェクトの構築、テスト、公開、展開などを自動化が出来ます

Tomcat

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

Spring Boot

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

1グッド

0クリップ

投稿2020/03/27 21:57

現在、Java Spring BootでCRUD機能を持った練習用アプリを作ろうとしています。Spring Data JDBC Templateを使用する内容で、最初に新規にSpringプロジェクトを作成する際にNew Spring Starter Project Dependenciesで

・H2 Database
・JDBC API
・Spring Boot DevTools
・Spring Web Starter
・Thymeleaf

にチェックを入れました。Dependencyの管理はMavenではなくGradleで行っています。

ソースコードを一通り書き、プログラムを実行してみようと思ったのですが、実行時に下記のようなエラーが出ました。(他にもエラーは出ていましたが、下記のエラーが上から順に見て一番最初のものでした)

2020-03-27 23:25:03.091 INFO 18988 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2020-03-27 23:25:03.148 ERROR 18988 --- [ restartedMain] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCreationException. Message: Error creating bean with name 'h2Console' defined in class path resource [org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.ServletRegistrationBean]: Factory method 'h2Console' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.jdbc.DataSourceInitializerInvoker': Invocation of init method failed; nested exception is org.springframework.jdbc.datasource.init.ScriptStatementFailedException: Failed to execute SQL script statement #1 of URL [file:/C:/Users/marra/Documents/workspace-spring-tool-suite-4-4.5.1.RELEASE/ScpReport/bin/main/data.sql]: INSERT INTO 'report' VALUES; nested exception is org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "INSERT INTO 'report'[*] VALUES"; expected "identifier"; SQL statement: INSERT INTO 'report' VALUES [42001-200]

最初はSQLのファイルのSyntaxに問題があるのかと思い、コードに実際におかしな所があったので修正したのですが、それでも同じエラーが出たのでSQLのコードではなくDependencyの問題なのかと思いました。

しかし自分にはDependency関連のエラー対処はほとんど経験がなく、どのフォルダのどのファイルのどの記述が余分なのか、あるいは欠けているのか、あるいは間違った形になっているのかをどうやって調べるのかがよくわかりません。

Dependencyの設定に問題があると仮定して、このような場合ではどのフォルダのどのファイルからチェックすればよいでしょうか?
また、何をチェックすればよいでしょうか?下記の例のような感じでしょうか?

例:
・〇〇というファイルに本来あるべき××という記述が欠けている
・△△と◆◆という2つの記述が同時に存在しているためConflictを起こしている→◆◆の方を消去すべし

Javaのバージョン:11
PC:Windows10

furitetepporaa👍を押しています

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2020/03/29 23:14

回答者はエスパーではありません
guest

回答1

0

自己解決

先日自分で解決できたので、概要を簡単に追記します。

質問投稿時に

最初はSQLのファイルのSyntaxに問題があるのかと思い、コードに実際におかしな所があったので修正したのですが、それでも同じエラーが出たのでSQLのコードではなくDependencyの問題なのかと思いました。

と書きましたが、実際にはおかしな所を一通り修正したと思い込んでいただけで実際にはSQLのSyntaxエラーが残っており(DaoImplではなくstaticフォルダのdataやschemaファイル内)、それらを修正したらこのエラーは消えました。

Syntax error in SQL statement

と書かれていたのはエラーメッセージの後ろの方で、「エラーメッセージは前(上)に表示されているものの方が重要である」と思い込んでいたので、まだSQLのSyntaxにエラーが残っている可能性を勝手に頭の中から排除してしまっていたのが、問題を不必要にややこしくしていた原因でした。

投稿2020/04/26 13:19

Sean2014

総合スコア59

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問