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

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

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

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

Q&A

解決済

1回答

1018閲覧

JPAでのH2への接続でエラーが発生した件について

退会済みユーザー

退会済みユーザー

総合スコア0

Spring Boot

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

0グッド

0クリップ

投稿2019/08/09 00:47

編集2019/08/09 06:09

プロジェクトに発生している!

トラブル内容

STSの超初心者です。
テキストを使用して勉強しているのですが、mavenベースのプロジェクトで
JPAでH2のDBへ接続するという学習項目に来た時に、

pom.xmlに

lang

1<dependency> 2 <groupId>org.springframework.boot</groupId> 3 <artifactId>spring-boot-starter-jdbc</artifactId> 4</dependency> 5<dependency> 6 <groupId>com.h2database</groupId> 7 <artifactId>h2</artifactId> 8</dependency>

を記載したところで、プロジェクトにビックリマークのようなものがついて、
プロジェクトをビルドすると
コンソールに以下のようなメッセージが出てきてエラーになってしまいます。

エラー

2019-08-09 14:35:13.469 INFO 9372 --- [ main] c.t.springboot.MyBootAppApplication : Starting MyBootAppApplication on NAOKI-PC with PID 9372 (C:\Users\Naoki\Documents\workspace-sts-3.9.2.RELEASE\MyBootApp\target\classes started by Naoki in C:\Users\Naoki\Documents\workspace-sts-3.9.2.RELEASE\MyBootApp)
2019-08-09 14:35:13.485 INFO 9372 --- [ main] c.t.springboot.MyBootAppApplication : No active profile set, falling back to default profiles: default
2019-08-09 14:35:14.346 INFO 9372 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-08-09 14:35:14.409 INFO 9372 --- [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 63ms. Found 1 repository interfaces.
2019-08-09 14:35:14.774 INFO 9372 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$a8474ab6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-08-09 14:35:15.143 INFO 9372 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-08-09 14:35:15.177 INFO 9372 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-08-09 14:35:15.177 INFO 9372 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.17]
2019-08-09 14:35:15.318 INFO 9372 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-08-09 14:35:15.333 INFO 9372 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1785 ms
2019-08-09 14:35:15.411 WARN 9372 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; 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]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
2019-08-09 14:35:15.424 INFO 9372 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2019-08-09 14:35:15.440 INFO 9372 --- [ main] ConditionEvaluationReportLoggingListener :

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-08-09 14:35:15.440 ERROR 9372 --- [ 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).


すみません、初学者すぎて質問の仕方もボヤッとしてますが、宜しくお願い致します。

各ファイルは以下の通りです。

pom.xml

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4 <modelVersion>4.0.0</modelVersion> 5 <parent> 6 <groupId>org.springframework.boot</groupId> 7 <artifactId>spring-boot-starter-parent</artifactId> 8 <version>2.1.4.RELEASE</version> 9 <relativePath/> <!-- lookup parent from repository --> 10 </parent> 11 <groupId>com.tsunano.springboot</groupId> 12 <artifactId>MyBootApp</artifactId> 13 <version>0.0.1-SNAPSHOT</version> 14 <name>MyBootApp</name> 15 <description>Sample project for Spring Boot</description> 16 17 <properties> 18 19 <java.version>1.8</java.version> 20 </properties> 21 22 <dependencies> 23 24 <dependency> 25 <groupId>org.springframework.boot</groupId> 26 <artifactId>spring-boot-starter-data-jpa</artifactId> 27 </dependency> 28 29 <dependency> 30 <groupId>com.h2database</groupId> 31 <artifactId>h2</artifactId> 32 </dependency> 33 34 <dependency> 35 <groupId>org.springframework.boot</groupId> 36 <artifactId>spring-boot-starter-web</artifactId> 37 </dependency> 38 39 <dependency> 40 <groupId>org.springframework.boot</groupId> 41 <artifactId>spring-boot-starter-test</artifactId> 42 <scope>test</scope> 43 </dependency> 44 <dependency> 45 <groupId>org.springframework.boot</groupId> 46 <artifactId>spring-boot-starter-thymeleaf</artifactId> 47 </dependency> 48 </dependencies> 49 50 <build> 51 <plugins> 52 <plugin> 53 <groupId>org.springframework.boot</groupId> 54 <artifactId>spring-boot-maven-plugin</artifactId> 55 </plugin> 56 </plugins> 57 </build> 58 59</project> 60

HeloController.java

java

1package com.tsunano.springboot; 2 3import org.springframework.beans.factory.annotation.Autowired; 4import org.springframework.stereotype.Controller; 5import org.springframework.web.bind.annotation.RequestMapping; 6import org.springframework.web.servlet.ModelAndView; 7 8import com.tsunano.springboot.repositories.MyDataRepository; 9 10 11@Controller 12public class HeloController { 13 14 @Autowired 15 MyDataRepository repository; 16 17 @RequestMapping("/") 18 public ModelAndView index(ModelAndView mav) { 19 mav.setViewName("index"); 20 mav.addObject("msg","this is sample content."); 21 Iterable<MyData> list=repository.findAll(); 22 mav.addObject("data",list); 23 return mav; 24 25 } 26 27} 28

MyBootAppApplication.java

java

1package com.tsunano.springboot; 2 3import org.springframework.boot.SpringApplication; 4import org.springframework.boot.autoconfigure.SpringBootApplication; 5 6@SpringBootApplication 7public class MyBootAppApplication { 8 9 public static void main(String[] args) { 10 SpringApplication.run(MyBootAppApplication.class, args); 11 } 12 13} 14

MyData.java

java

1package com.tsunano.springboot; 2 3 4import javax.persistence.Column; 5import javax.persistence.Entity; 6import javax.persistence.GeneratedValue; 7import javax.persistence.GenerationType; 8import javax.persistence.Id; 9import javax.persistence.Table; 10 11@Entity 12@Table(name="mydata") 13 14public class MyData { 15 16 17@Id 18@GeneratedValue(strategy=GenerationType.AUTO) 19@Column 20private long id; 21 22@Column(length=50, nullable=false) 23private String name; 24 25@Column(length=200, nullable=true) 26private String mail; 27 28@Column(nullable=true) 29private Integer age; 30 31@Column(nullable=true) 32private String memo; 33 34 35public long getId() {return id;} 36public void setId(long id) {this.id=id;} 37public String getName() {return name;} 38public void setName(String name) {this.name=name;} 39public String getMail() {return mail;} 40public void setMail(String mail) {this.mail=mail;} 41public Integer getAge() {return age;} 42public void setAge(Integer age) {this.age=age;} 43public String getMemo() {return memo;} 44public void setMemo(String memo) {this.memo=memo;} 45}

MyDataRepository.java

java

1package com.tsunano.springboot.repositories; 2 3 4import com.tsunano.springboot.MyData; 5 6import org.springframework.data.jpa.repository.JpaRepository; 7import org.springframework.stereotype.Repository; 8 9@Repository 10public interface MyDataRepository extends JpaRepository<MyData,Long> { 11 12} 13

試したこと

➀application.propatiesにDBへの接続情報を記載。
→特に変化無し。

➁pom.xmlの書き換え

lang

1<dependency> 2 <groupId>org.hsqldb</groupId> 3 <artifactId>hsqldb</artifactId> 4</dependency>

→ビックリマークは消えました。
そもそもHSQLDBをインストールしていないので、意味がないです。

➂プロジェクトを右クリック→Maven→Update Project
→特に変化無し。

➃Clean
→特に変化無し。

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

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2019/08/09 01:01

「プロジェクトにビックリマーク」 念のため画面キャプチャご提示ください。 ちなみに編集後、上書き保存はしましたか?
退会済みユーザー

退会済みユーザー

2019/08/09 01:45 編集

上書きは行いました。 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> をHSQLDBのdependencyに書き換えるとビックリマークは消えます。 手元に開発機が無いので画面キャプチャは少々お待ちください。 拾ってきた画像でもよろしければ、同じ状態の画像を添付できます。
m.ts10806

2019/08/09 01:39 編集

「プロジェクトにビックリマーク」 念のため画面キャプチャご提示ください。 ※質問は編集できます
m.ts10806

2019/08/09 01:47

XMLも正しい書式で確認する必要があるので、 マークダウンのcode機能を利用してご提示ください。https://teratail.com/help#about-markdown あとしつこいようですが結構大事です。「ビックリマーク」が分かる画面キャプチャをご提示ください。画像添付機能もありますので。
退会済みユーザー

退会済みユーザー

2019/08/09 02:13

色々教えてくださいまして、ありがとうございます。 code機能を使用しました。
m.ts10806

2019/08/09 02:23

あとしつこいようですが結構大事です。「ビックリマーク」が分かる画面キャプチャをご提示ください。画像添付機能もありますので。 むしろ↑のほうが回答側としては見たいわけでして。 それに・・プロジェクト生成の方法もですね。すべての人が書籍を使っているとは限らないので、「他者が完全再現できる」必要があります。 (STSならむしろBootのStarterプロジェクト作ってインストールパッケージにJPAとH2Database指定すれば終わりのようにも思うし・・・)
退会済みユーザー

退会済みユーザー

2019/08/09 02:49

同じ状態の画像を添付できます。 それ拾ってこれるならそこに解決策は書かれてるね。解決解決
退会済みユーザー

退会済みユーザー

2019/08/09 06:07

画面キャプチャとどのファイルのコードを提示すればいいかわからなかったので、とりあえず編集したものを上げました。 宜しくお願い致します。 m.ts10806さんの仰る通りのことしかしていないつもりですが、何かしそこなっておりますでしょうか。 asahina1979>>そう思ったんですけど、なかなかうまくいかずという感じです。
m.ts10806

2019/08/09 06:09

いえ、画面キャプチャにはついては一番最初のコメントから書いていましたので中々対応してもらえないなと思って。
m.ts10806

2019/08/09 06:17

ただ見た感じ「SpringFramework5プログラミング入門」(著・掌田津耶乃)ですかね。tsunanoじゃなくてtsuyanoかなと(問題と直接関係はないですが)。 ただ、そもそもこの書籍、私も持っていましたが、2017年12月のもので、ちょっと古いです。この本の通りにやって進むかどうかはちょっと微妙です(私も途中で公式ドキュメントと別途Qiitaなどの記事参考に切り替えました) STSも最新は4ですし、何か特別な理由がないのであれば環境は最新にしてもらったほうが良さそうです。 あと先のコメントで書きましたようにJPAもH2DatabaseもSpring Starter Project作成の流れでパッケージとしてインストールできるので直にpom.xmlに書かなくても導入は可能です(STS3でも多分できたはずですが・・・)
退会済みユーザー

退会済みユーザー

2019/08/09 06:24

最近tsunanoに気づいたので、後戻りできませんでした すみません、全くの素人なので重複したことを確認しますが、 今回の場合ですと、特別pom.xmlにJPAもH2も記載しなくてもDBの接続は行えるということですね。
m.ts10806

2019/08/09 06:33

いえ、パッケージとしてインストールすると自動でpom.xmlに記述されます。
退会済みユーザー

退会済みユーザー

2019/08/09 06:43

すみません、読み飛ばしてました。 プロジェクトを作成する段階で指定していればということですね。 ですが、結局今回の場合はどうしたらいいのか・・・
m.ts10806

2019/08/09 06:44

とりあえず学習段階とのことですし、特異なことを対応するのでなければpom.xmlの手打ちってあまりよくないです。 ひとまずSpring Starter Projectからプロジェクトを作り直してみては? ※できればSTSも最新のものを入れてから・・・
A-pZ

2019/08/09 08:41

データベースの接続設定を書くと、回答が得られるかもしれません
guest

回答1

0

ベストアンサー

ダウンロード済みjarファイル(.m2)下を削除したところ、ビックリマークを削除したところ、!マークは消え、コンパイルもできました。

別件ですが、問題解決後、STSを最新にしました。

投稿2019/08/10 12:51

編集2019/08/11 04:12
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問