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

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

ただいまの
回答率

88.83%

springbootにて「creatingbeanerror」が発生し、起動に失敗する

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,008

kinu221

score 24

前提・実現したいこと

springbootにてError creating beanが発生していますので、トラブルシュートして起動できるようにしたい。

個人で勉強のため、STSでSpringBootを使用してCRUDシステムを開発しています。
サーバーを起動しようとすると下記のエラーが発生して、うまくいきません。
個人で解決できませんでしたので、先達の方にアドバイスを頂けると幸いです。
宜しくお願い致します。

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

Communications link failure

BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource

該当のソースコード

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/person_db
spring.datasource.username=root
spring.datasource.password=
package com.example.person.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.person.entity.PersonEntity;
import com.example.person.repository.PersonRepository;

@Service
public class PersonService {

    @Autowired
    private PersonRepository personRepository;

    public List<PersonEntity> findAll() {
        return personRepository.findAll();
    }

    public PersonEntity findOne(long id) {
        return personRepository.findById(id).orElse(null);
    }

    public PersonEntity save(PersonEntity person) {
        return personRepository.save(person);
    }

    public void delete(long id) {
        personRepository.deleteById((long) id);
    }
}
package com.example.person.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

@Entity
@Table(name="person")
public class PersonEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    @NotEmpty
    private String name;
    @NotNull
    @Min(value = 0)
    @Max(value = 150)
    private int age;
    @Size(max = 20)
    private String belong;
    private String workplace;

    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getBelong() {
        return belong;
    }
    public void setTeam(String belong) {
        this.belong = belong;
    }
    public String getWorkplace() {
        return workplace;
    }
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
          <groupId>nz.net.ultraq.thymeleaf</groupId>
          <artifactId>thymeleaf-layout-dialect</artifactId>
        </dependency>
    </dependencies>


該当しそうなソースコードのみを挙げています。
他にもありますので、必要な時はご連絡ください。

試したこと

ネットで調べて下記の内容に変更するとトラブルシュートできるとあり、試しましたが解決できませんでした。
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
アノテーションの見直し。

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

STS 4.2.0
SpringBoot
phpmyadmin

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+1

記載されたエラーメッセージでは、entityManagerFactoryのbean作成に失敗した、と出ていますね。

entityManagerFactoryのソースを見直してみてはいかがでしょうか?

見当違いの回答でしたね。
こちらの情報が参考になりませんでしょうか?
https://teratail.com/questions/110174

前提条件として、データベースは起動しており、jdbcで指定しているデータベースにユーザーでログインできる状態でしょうか?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/02 20:48

    ご回答ありがとうございます。
    データベースは起動しており、propertiesにデータベースの設定をしていますので、DB接続設定はできていると思います。(記載ミスなどがなければ。)
    @Columnは記載していますので、紐付けもできていると思います。

    キャンセル

  • 2019/05/04 22:44

    サーバーの起動はできるようになりましたが、初期表示画面にアクセスすると下記エラーが表示されます。原因がわからなくアドバイスを頂けると幸いです。
    com.example.person.PersonApplication : No active profile set, falling back to default profiles: default
    .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
    .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
    .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
    .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 122ms. Found 1 repository interfaces.
    trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$54f27dce] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
    o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
    o.apache.catalina.core.StandardService : Starting service [Tomcat]
    org.apache.catalina.core.StandardEngine : Starting Servlet engine:
    Initializing Spring embedded WebApplicationContext
    o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 6751 ms
    Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
    o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
    org.hibernate.Version : HHH000412: Hibernate Core org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found
    o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations
    com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
    com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
    com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.

    com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

    2019-05-04 22:21:44.770 WARN 11876 --- [ restartedMain] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata : Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    2019-05-04 22:21:44.820 INFO 11876 --- [ restartedMain] org.hibernate.dialect.Dialect : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect

    2019-05-04 22:22:17.386 ERROR 11876 --- [nio-8080-exec-3] o.h.engine.jdbc.spi.SqlExceptionHelper : Communications link failure

    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    2019-05-04 22:22:17.557 ERROR 11876 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JPA EntityManager for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection] with root cause

    キャンセル

check解決した方法

0

コードの記載ミスでそれを修正するとサーバーの起動はできるようになりました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.83%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る