🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Q&A

解決済

1回答

2989閲覧

Springでpom.xmlにJPA設定ができない

chocolate_pie

総合スコア26

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

0グッド

1クリップ

投稿2019/11/29 06:30

編集2019/11/29 06:45

前提・実現したいこと

SpringでJPAを利用してDBにアクセスしたいのですが、
プロジェクトの中のpom.xmlにその旨を記述するとエラーが起こります。
最終的にプロジェクトをMaven installで実行してBUILD SUCCESSとコンソールに出したいです。

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

プロジェクト内のpom.xmlにJPA設定ができません。

エラーメッセージ

[INFO] Results:
[INFO]
[ERROR] Errors:
[ERROR] ShopApplicationTests.contextLoads » IllegalState Failed to load ApplicationCon...
[INFO]
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.525 s
[INFO] Finished at: 2019-11-29T15:13:49+09:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "pom.xml" could not be activated because it does not exist.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test (default-test) on project shop: There are test failures.
[ERROR]
[ERROR] Please refer to C:\Program Files\pleiades\workspace\shop\target\surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date].dump, [date]-jvmRun[N].dump and [date].dumpstream.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

該当のソースコード

xml

1<?xml version="1.0" encoding="UTF-8"?> 2<project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 <parent> 7 <groupId>org.springframework.boot</groupId> 8 <artifactId>spring-boot-starter-parent</artifactId> 9 <version>2.2.1.RELEASE</version> 10 <relativePath /> <!-- lookup parent from repository --> 11 </parent> 12 <groupId>jp.co.sss.shop</groupId> 13 <artifactId>shop</artifactId> 14 <version>0.0.1-SNAPSHOT</version> 15 <name>shop</name> 16 <description>Demo project for Spring Boot</description> 17 18 <properties> 19 <java.version>13</java.version> 20 </properties> 21 22 <dependencies> 23 <dependency> 24 <groupId>org.springframework.boot</groupId> 25 <artifactId>spring-boot-starter-thymeleaf</artifactId> 26 </dependency> 27 <dependency> 28 <groupId>org.springframework.boot</groupId> 29 <artifactId>spring-boot-starter-web</artifactId> 30 </dependency> 31 32 <dependency> 33 <groupId>org.springframework.boot</groupId> 34 <artifactId>spring-boot-devtools</artifactId> 35 <scope>runtime</scope> 36 <optional>true</optional> 37 </dependency> 38 39 <dependency> 40 <groupId>org.springframework.boot</groupId> 41 <artifactId>spring-boot-starter-test</artifactId> 42 <scope>test</scope> 43 <exclusions> 44 <exclusion> 45 <groupId>org.junit.vintage</groupId> 46 <artifactId>junit-vintage-engine</artifactId> 47 </exclusion> 48 </exclusions> 49 </dependency> 50 51 52 <!--JPAを使用するための設定(ここが原因でエラーが出る) --> 53 <dependency> 54 <groupId>org.springframework.boot</groupId> 55 <artifactId>spring-boot-starter-data-jpa</artifactId> 56 </dependency> 57 58 59 <!--JDBCを使用するための設定(object7.jarのビルドパス設定) --> 60 <dependency> 61 <groupId>com.oracle.jdbc</groupId> 62 <artifactId>ojdbc7</artifactId> 63 <version>12.1.0.2</version> 64 <scope>system</scope> 65 <systemPath>${basedir}/src/main/resources/lib/ojdbc7.jar</systemPath> 66 </dependency> 67 68 </dependencies> 69 70 <build> 71 <plugins> 72 <plugin> 73 <groupId>org.springframework.boot</groupId> 74 <artifactId>spring-boot-maven-plugin</artifactId> 75 </plugin> 76 </plugins> 77 </build> 78 79</project> 80

試したこと

・該当のソースコードをコメントアウトしたらBUILD SUCCESSになったのでJPA設定ができていないことが分かっている
・直接コードをxmlに書くのではなく、依存関係の追加からJPAを追加
・JavaのクラスでJPAを設定しないとエラーが出るライブラリ(?)javax.persistence.○○は、該当ソースコードを書いた後使えたが、SpringBootアプリケーションで実行しようとするとエラーが出る

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

Spring(STS) 3.9.10
Java jdk13.0.1
DB Oracle Database 11g Express Edition
テンプレートエンジン Thymleaf2.2.1
ビルドツール Maven
サーブレットコンテナ Tomcat9

Spring学習を始めた初心者です。
教科書に沿ってその通りにコードを書いているのですが、
上手くいきませんでした。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/29 13:46

junit testが失敗してるからかと
退会済みユーザー

退会済みユーザー

2019/11/29 13:49

あとsts3.9はjava13非対応かと、java8等サポートされているバージョンを使いましょう
guest

回答1

0

ベストアンサー

依存関係にspring-boot-starter-data-jpaを追加した場合、アプリケーション設定ファイル(application.properties または application.yml)にデータソースの設定を行わないと、デフォルトで作成されているテストクラスが失敗すると思います。

この場合、対処法として考えられるのは下記3点です。
どれでもいいと思いますが簡単なのは1) or 2)、最終的にデータベース接続を行うコードを書くのであれば3)は必須です。

1) デフォルトで作成されているテストクラスを削除するか無効化する。

デフォルトで作成されているテストクラスはあまり意味がないので削除するか無効化してもいいと思います。

例)削除する

エラーが発生しているShopApplicationTests.javaを削除する。

例)無効化する

エラーが発生しているShopApplicationTests.javaにを下記のように編集する。

@Disabled @SpringBootTest class ShopApplicationTests { //...省略... }

2) ビルド時にテストを実行しないようにskipオプションを指定する。

テストコードを修正したくない場合は、ビルド実行時にスキップすることもできます。

例)Eclipseから

Mavenビルドの実行構成画面を開き、枠線で囲った”テストのスキップ”にチェックを入れる

イメージ説明

例)コマンドラインから
> mvn clean package -DskipTests=true

3) アプリケーション設定ファイルにデータソースの設定を行う。

データソースの設定で最低限必要な記述をします。この設定を行った場合は以降、ビルド時にデータベースに接続できるようにしておく必要があります。

# JDBC URL of the database. spring.datasource.url = # Login username of the database. spring.datasource.username = # Login password of the database. spring.datasource.password =

投稿2019/11/29 16:44

rubytomato

総合スコア1752

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

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

chocolate_pie

2019/12/02 07:58

ありがとうございます。テストファイルを削除したら無事BUILD SUCCESSが表示されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問