Hibernate、Spring Boot、JavaFXを使用してJARを生成する

MTretowski:

Spring BootとHibernateを使用するアプリケーションでJARを作成する際に問題があります。また、Hibernateを使用せずにSpring Bootのみを使用して同様のJARをアプリから生成しようとしていましたが、すべて正常に機能します。

これは、MySQLデータベースに接続されたJavaFXデスクトップアプリケーションです。

編集:私が強調する必要があるのは、アプリケーションがIDE(IntelliJ)から起動しているときにすべてが正常に機能することです。問題は生成されたJARからアプリを起動することのみです

例外:

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
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:769)
    at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:218)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1308)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1154)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:392)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:853)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
    at pl.settlement.SettlementApplication.main(SettlementApplication.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
    at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: 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
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:627)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:607)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1288)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:273)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1237)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1164)
    at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:857)
    at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:760)
    ... 38 more
Caused by: 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
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:622)
    ... 52 more
Caused by: org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
    at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:236)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.initializeDataSourceBuilder(DataSourceProperties.java:176)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:43)
    at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:83)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    ... 53 more

pom.xml:

<groupId>pl</groupId>
<artifactId>settlement</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>settlement</name>
<description>Settlements</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<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-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180130</version>
    </dependency>
    <dependency>
        <groupId>com.sun.mail</groupId>
        <artifactId>javax.mail</artifactId>
        <version>1.5.5</version>
    </dependency>
    <dependency>
        <groupId>org.controlsfx</groupId>
        <artifactId>controlsfx</artifactId>
        <version>9.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.17</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <fork>true</fork>
                <mainClass>pl.settlement.SettlementApplication</mainClass>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2-beta-5</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>pl.settlement.SettlementApplication</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>assemble-all</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

application.properties

spring.datasource.url=jdbc:mysql://localhost:3306/settlement?useSSL=true
spring.datasource.username=root
spring.datasource.password=admin

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.url">jdbc:mysql://localhost:3306/settlement</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <mapping class="pl.settlement.Entities.CountryEntity"/>
        <mapping class="pl.settlement.Entities.CurrencyEntity"/>
        <mapping class="pl.settlement.Entities.CurrencyRateEntity"/>
        <mapping class="pl.settlement.Entities.CurrencyTableEntity"/>
        <mapping class="pl.settlement.Entities.DailyRateEntity"/>
        <mapping class="pl.settlement.Entities.DriverEntity"/>
        <mapping class="pl.settlement.Entities.DriverChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.FuellingEntity"/>
        <mapping class="pl.settlement.Entities.FuellingImportEntity"/>
        <mapping class="pl.settlement.Entities.OrderEntity"/>
        <mapping class="pl.settlement.Entities.OrderChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.OrderEventEntity"/>
        <mapping class="pl.settlement.Entities.OrderEventTypeEntity"/>
        <mapping class="pl.settlement.Entities.OrderIncomeEntity"/>
        <mapping class="pl.settlement.Entities.OrderIncomeTypeEntity"/>
        <mapping class="pl.settlement.Entities.OrderOutcomeEntity"/>
        <mapping class="pl.settlement.Entities.OrderOutcomePaymentMethodEntity"/>
        <mapping class="pl.settlement.Entities.OrderOutcomeTypeEntity"/>
        <mapping class="pl.settlement.Entities.OrderStatusEntity"/>
        <mapping class="pl.settlement.Entities.OrderTollEntity"/>
        <mapping class="pl.settlement.Entities.SupplierEntity"/>
        <mapping class="pl.settlement.Entities.TrailerEntity"/>
        <mapping class="pl.settlement.Entities.TrailerChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.TruckEntity"/>
        <mapping class="pl.settlement.Entities.TruckChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.UserEntity"/>
        <mapping class="pl.settlement.Entities.UserChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.UserPermissionsEntity"/>
        <mapping class="pl.settlement.Entities.VatRateEntity"/>
        <mapping class="pl.settlement.Entities.CompanyFixedCostsEntity"/>
        <mapping class="pl.settlement.Entities.CompanyFixedCostsChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.TourEntity"/>
        <mapping class="pl.settlement.Entities.TourChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.TourStatusEntity"/>
        <mapping class="pl.settlement.Entities.MeasurementEntity"/>
        <mapping class="pl.settlement.Entities.CountryChangeLogEntity"/>
        <mapping class="pl.settlement.Entities.CustomerEntity"/>
        <mapping class="pl.settlement.Entities.CompanyEntity"/>
        <mapping class="pl.settlement.Entities.OrderEntity"/>
    </session-factory>
</hibernate-configuration>
M-Razavi:

問題は:

DataSourceBeanCreationException: Failed to determine a suitable driver class  

そしてSpring.ioのドキュメントに基づいて:

多くの場合、Spring BootはURLから推測することができるため、driver-class-nameを指定する必要はありません。

このようなエラーが発生しないすべての依存関係を持つ単一のJarファイルを作成するにはmaven-assembly-plugin、pom.xmlに追加mvn packageたように、コマンドを使用してすべての依存関係を持つjarを作成し、次の場所に作成します。target/settlement-0.0.1-SNAPSHOT-jar-with-dependencies.jar

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring boot1.5.9とHibernateを使用して保存時に自動生成IDを取得する

分類Dev

Spring + Hibernateを使用して更新する

分類Dev

Spring Boot + Hibernate + MySqlを使用してMVCアプリを実行する

分類Dev

リポジトリでSpring Boot JPA / Hibernateを使用して内部結合する方法

分類Dev

Spring Boot 2 Hibernate Search

分類Dev

Angular / Spring-Bootを使用してFirebaseから確認メールを生成する

分類Dev

Hibernate / Spring Bootを使用してJSONファイルをJSONデータ型としてmysqlに保存する方法は?

分類Dev

JNDIを使用して(Springで)hibernateの方言を構成する

分類Dev

Springを使用してHibernate Interceptor BeanにEntityManagerを注入する方法は?

分類Dev

hibernate + Springを使用して更新クエリを作成する方法

分類Dev

AngularJS、Spring、Hibernateを使用して部屋の予約を保存する

分類Dev

Hibernate、Spring、JDBCを使用してSSL証明書を構成する

分類Dev

JNDIとHibernateを使用してSpringを構成する

分類Dev

Spring BootでHibernate / JPAを使用してマルチレベルjsonを返す方法

分類Dev

Spring BootでHibernate / JPAを使用してマルチレベルjsonを返す方法

分類Dev

spring-bootとhibernateを使用して、stackoverflow例外を解決するにはどうすればよいですか?

分類Dev

異なるConstraintValidatorManagerを使用したSpring BootのHibernate Validator

分類Dev

Spring Boot Hibernate Criteria API PostGRESを使用してクエリの部分的な入力のみの結果を取得する

分類Dev

Spring 4.2.4(Spring Bootを使用しない)+ EhCache 3 + Hibernate 4.2.1

分類Dev

NullPointerExceptionが、HibernateとSpring Bootを使用したFetchType.LAZYで発生する

分類Dev

JSF + Spring + HibernateでDTOを使用する方法

分類Dev

Spring BootでJARパッケージを使用してJSPを提供することは可能ですか?

分類Dev

Spring Boot @Configuraionおよび@Valueを使用してjavafxのTextFieldのデフォルト値を初期化する

分類Dev

SpringBootでHibernateを使用して自動UUIDを生成する方法

分類Dev

Spring Bootを更新して、JARファイルの代わりにWARファイルを生成します

分類Dev

Spring BootアプリでHibernate Validationを使用してBean Validationを行う方法は?

分類Dev

Spring Boot Error 404 Not Found Hibernate

分類Dev

Spring Boot Data Hibernate Transaction Manager

分類Dev

Gradleを使用したSpring Bootマルチプロジェクトは同じjarを生成します

Related 関連記事

  1. 1

    Spring boot1.5.9とHibernateを使用して保存時に自動生成IDを取得する

  2. 2

    Spring + Hibernateを使用して更新する

  3. 3

    Spring Boot + Hibernate + MySqlを使用してMVCアプリを実行する

  4. 4

    リポジトリでSpring Boot JPA / Hibernateを使用して内部結合する方法

  5. 5

    Spring Boot 2 Hibernate Search

  6. 6

    Angular / Spring-Bootを使用してFirebaseから確認メールを生成する

  7. 7

    Hibernate / Spring Bootを使用してJSONファイルをJSONデータ型としてmysqlに保存する方法は?

  8. 8

    JNDIを使用して(Springで)hibernateの方言を構成する

  9. 9

    Springを使用してHibernate Interceptor BeanにEntityManagerを注入する方法は?

  10. 10

    hibernate + Springを使用して更新クエリを作成する方法

  11. 11

    AngularJS、Spring、Hibernateを使用して部屋の予約を保存する

  12. 12

    Hibernate、Spring、JDBCを使用してSSL証明書を構成する

  13. 13

    JNDIとHibernateを使用してSpringを構成する

  14. 14

    Spring BootでHibernate / JPAを使用してマルチレベルjsonを返す方法

  15. 15

    Spring BootでHibernate / JPAを使用してマルチレベルjsonを返す方法

  16. 16

    spring-bootとhibernateを使用して、stackoverflow例外を解決するにはどうすればよいですか?

  17. 17

    異なるConstraintValidatorManagerを使用したSpring BootのHibernate Validator

  18. 18

    Spring Boot Hibernate Criteria API PostGRESを使用してクエリの部分的な入力のみの結果を取得する

  19. 19

    Spring 4.2.4(Spring Bootを使用しない)+ EhCache 3 + Hibernate 4.2.1

  20. 20

    NullPointerExceptionが、HibernateとSpring Bootを使用したFetchType.LAZYで発生する

  21. 21

    JSF + Spring + HibernateでDTOを使用する方法

  22. 22

    Spring BootでJARパッケージを使用してJSPを提供することは可能ですか?

  23. 23

    Spring Boot @Configuraionおよび@Valueを使用してjavafxのTextFieldのデフォルト値を初期化する

  24. 24

    SpringBootでHibernateを使用して自動UUIDを生成する方法

  25. 25

    Spring Bootを更新して、JARファイルの代わりにWARファイルを生成します

  26. 26

    Spring BootアプリでHibernate Validationを使用してBean Validationを行う方法は?

  27. 27

    Spring Boot Error 404 Not Found Hibernate

  28. 28

    Spring Boot Data Hibernate Transaction Manager

  29. 29

    Gradleを使用したSpring Bootマルチプロジェクトは同じjarを生成します

ホットタグ

アーカイブ